Python:IndexError:列表索引超出范围 Caeser Cipher
Posted
技术标签:
【中文标题】Python:IndexError:列表索引超出范围 Caeser Cipher【英文标题】:Python: IndexError: list index out of range Caeser Cipher 【发布时间】:2016-02-13 13:27:21 【问题描述】:我正在尝试创建一个凯撒密码 python 代码并不断收到 IndexError: list index out of range when I type 'y'。但是,当我输入“你好”之类的内容时没有问题。我不一定要寻找解决方案,但会喜欢解释,因为我真的不明白。
plaintext=raw_input("Enter message: ")
convert=plaintext.lower()
alphabet= ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
key=2
cipher=""
for i in convert:
if i in alphabet:
cipher+=alphabet[(alphabet.index(i)+key%len(alphabet))]
print("Your decrypted message is: " +cipher)
【问题讨论】:
对不起,补充一下,我认为这是因为代码没有将其包装回字母表的开头,但是,我认为 mod 函数会这样做。 【参考方案1】:你需要把你的(
)
移到这里:
cipher+=alphabet[(alphabet.index(i)+key)%len(alphabet)]
记住运算符的优先级。
您只是将%
应用于密钥
【讨论】:
非常感谢 - 我认为它会比这复杂得多。以上是关于Python:IndexError:列表索引超出范围 Caeser Cipher的主要内容,如果未能解决你的问题,请参考以下文章
Python:IndexError:列表索引超出范围 Caeser Cipher
Python 3.6“IndexError:列表索引超出范围”
我继续得到indexerror:python上的索引列表超出范围