- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试制作 Julius Caesar Cipher 程序,但通过在句子的开头和结尾添加一个随机字母来添加一个扭曲。出于某种原因,当我输入一个长字符串时,打印时字符串的一部分丢失了。我正在使用 python 3。有人可以解释如何解决这个问题以及为什么会这样吗?谢谢
import random
alpha = 'abcdefghijklmnopqrstuvwxyz'
alphaupper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
def encode(cleartext):
global alpha
global alphaupper
words = cleartext
cyphertext = ""
for char in words:
if char in alphaupper:
newpos = (alphaupper.find(char) + 13) % 26
cyphertext += alphaupper[newpos]
elif char in alpha:
newpos = (alpha.find(char) + 13) % 26
cyphertext += alpha[newpos]
else:
cyphertext += char
cyphertext = alpha[random.randrange(len(alpha) - 1)] + cyphertext + alpha[random.randrange(len(alpha) - 1)]
return cyphertext
def decode(cleartext):
global alpha
global alphaupper
words = cleartext.replace(cleartext[len(cleartext) - 1], "")
words = words.replace(words[0], "")
cyphertext = ""
for char in words:
if char in alphaupper:
newpos = (alphaupper.find(char) + 13) % 26
cyphertext += alphaupper[newpos]
elif char in alpha:
newpos = (alpha.find(char) + 13) % 26
cyphertext += alpha[newpos]
else:
cyphertext += char
return cyphertext
print("Julias Ceasar 13 letter shift")
def men():
words = input("Would you like to decode or encode: ")
if "decode" in words:
words = input("What would you like to decode: ")
print(decode(words))
print('\n')
men()
elif "encode" in words:
words = input("What would you like to encode: ")
print(encode(words))
print('\n')
men()
else:
print("Could not understand please try again")
print('\n')
men()
if __name__ == "__main__":
men()
输出:
Julias Ceasar 13 letter shift
Would you like to decode or encode: encode
What would you like to encode: This program deletes parts of this string for some reason
编码:
yGuvf cebtenz qryrgrf cnegf bs guvf fgevat sbe fbzr ernfbas
解码:
Would you like to decode or encode: decode
What would you like to decode: yGuvf cebtenz qryrgrf cnegf bs guvf fgevat sbe fbzr ernfbas
最后解码的句子:
This program deletes parts o this string or some reason
Would you like to decode or encode:
最佳答案
看起来问题是,在解码时,你做
words = cleartext.replace(cleartext[len(cleartext) - 1], "")
words = words.replace(words[0], "")
str.replace
如果您不包括可选的第三个 count
参数,则替换 all 出现。这意味着您要删除的字符比您预想的要多。
如果你只想去掉字符串的第一个和最后一个字符,你可以这样做
words = cleartext[1:-1]
这更简洁,因为您实际上并不关心第一个和最后一个字符是什么,您只是希望它们消失。
关于Python Julius Caesar 密码程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45892023/
我一直在使用 Yesod 的消息系统来帮助保持我的语言一致。例如,我有一条名为 MsgBrand 的消息,它毫无问题地插入到 Hamlet 文件中。但是,我现在正在使用需要此类信息的 JavaScri
目前我的应用程序中有一条路线,如下所示: getBookmarksR :: Handler Html getBookmarksR = do defaultLayout $ do s
我正在尝试制作 Julius Caesar Cipher 程序,但通过在句子的开头和结尾添加一个随机字母来添加一个扭曲。出于某种原因,当我输入一个长字符串时,打印时字符串的一部分丢失了。我正在使用 p
我正在尝试弄清楚如何在 yesod 之外使用独立的 Julius 发出 Javascript 代码: {-# LANGUAGE QuasiQuotes #-} import qualified Dat
我有一个需要放在 map 上的坐标列表。朱利叶斯是否可以迭代列表?现在我正在 hamlet 中创建一个隐藏表并在 julius 中访问该表,这似乎不是一个理想的解决方案。 有人可以指出更好的解决方案吗
我有一个 Yesod 0.9.3 脚手架站点,其中包含一些对于每个页面都不同的小片段,例如从不确定数量的搜索结果生成的特定 id 属性的样式,我想将它们放在 或 中的标签页面,以免它们污染我的/s
我认为 @{SomeRouteR} 应该在 .julius 文件中工作,如下所述: https://www.yesodweb.com/book/shakespearean-templates#shak
调试 JS 时,Chrome 允许您编辑 JS,然后重新加载页面。仅当您正在编辑的 JS 作为单独的资源提供时,才会发生这种情况。据我所知,目前不可能以这种方式调试 JS 代码,因为 Yesod 会将
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines准则。它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,
假设我想合并一堆 Javascript 和 Julius 文件。我这样做: jsWidget :: Widget jsWidget = do addScript $ Static
我有路线 /notes/#NoteId NoteR GET 从另一个页面,我想链接到它。使用“经典”村庄时,很简单: notetitle 我希望我的页面更加动态并获取包含注释信息和注释 I
使用 Yesod 脚手架站点,在生成的“autogen-XXX.js”中,为什么 default-layout.julius 在我的其他 julius 文件之后呈现是有原因的吗? 有没有办法改变这个顺
我是一名优秀的程序员,十分优秀!