是因为两个if和else语句在彼此内部?在
我正在为课堂编写一个凯撒密码程序。我收到一个错误:
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
main()
File "C:\Users\Chandler\Desktop\CSCI220-S16-Assign2-CaesarEncode-CTL.py", line 31, in main
print("You coded message is: ", (code(message)))
File "C:\Users\Chandler\Desktop\CSCI220-S16-Assign2-CaesarEncode-CTL.py", line 25, in code
textInput += alphabet[letterPos]
IndexError: string index out of range
只是一个侧记,我还将创建这个程序的另一个循环部分,以展开文本回到初始输入
^{pr2}$
您已经用
letterPos = alphabet.find(ch) + key
移动了字母,并在必要时在if letterPos > 26
块中环绕它。但是,必须使用模26,而不是key
值。另外,else块是多余的,而且也是有问题的,因为您第二次移动字母时没有换行。在每次都应该使用模,因为分支比较慢。总而言之,这应该能解决问题。在
另外,注意名称
cyphertext
,它在任何地方都没有定义。在插入print语句以查看letterPos在程序运行过程中的值。看看26岁或更大。26或更大将需要if语句:if letterPos>;=26。在
相关问题 更多 >
编程相关推荐