我正在开发一个公平密码程序,其中我有两个函数,名为 sameCol 和 sameRow,它们应该做的是查看两个字母是否在同一行或同一列中,并且我编写的代码工作了一段时间,但是然后坏了,我不知道我做了什么导致它停止正常工作,因为程序将获取需要加密的密钥和消息并返回加密的消息,但由于某种原因它不返回加密的消息。>
更新:我尝试了更多的密钥和消息输入(用于加密),显然有些输入有效,但有些无效。
这是我完成的输入:
回车键:lkj
输入消息代码:fig
结果 = ezez
但是如果我像下面这样输入 homelike 然后它又开始显示错误:
回车键:运行
输入要编码的消息:dik
结果:
Traceback (most recent call last):
File "/../playfair.py", line 334, in <module>
encoded = cipher.encode()
File "/../playfair.py", line 257, in encode
codeString = self.sameRow(row1, row2, decode = False)
File "/../playfair.py", line 52, in sameRow
ltr1Row = index1[0]
TypeError: 'int' object is not subscriptable
类型错误显示了以下内容:
ltr1Row = index1[0]
以及类型错误消息,我无法理解这有什么问题,因为它工作正常,而且我什至没有创建这个变量,而是我的教授创建的。
这是ltr1Row = index1[0]
部分的更多代码:
def sameCol(self, index1, index2, decode):
ltr1Row = index1[0]
ltr1Col = index1[1]
ltr2Row = index2[0]
ltr2Col = index2[1]
这也是 sameRow 的相同代码,我稍后也在我的程序中调用它们,她是其中之一的以下代码:
codeString = self.sameCol(col1, col2, decode = False)
如果需要,这里是整个源代码的链接: https://gist.github.com/roshanlam/e0b9966af1325d5c9469f8cd3a14e402