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的主要内容,如果未能解决你的问题,请参考以下文章

IndexError:列表索引超出范围(Python)

Python:IndexError:列表索引超出范围 Caeser Cipher

Python 3.6“IndexError:列表索引超出范围”

我继续得到indexerror:python上的索引列表超出范围

KeyError:“likeCount”和IndexError:Python中的列表索引超出范围

Python - 索引错误 - 列表索引超出范围