我正在尝试创建一个 python playfair 密码,并且在此过程中遇到了一些问题。我有一个五乘五的表格,其中包含以下信息:
[['A', 'B', 'C', 'D', 'E'],
['F', 'G', 'H', 'I', 'Y'],
['K', 'L', 'M', 'N', 'O'],
['P', 'Q', 'R', 'S', 'T'],
['U', 'V', 'W', 'X', 'Z']]
我应该一次加密两个字母。当给定输入加密 (B, N) 时,结果输出应该是 DL。输入中的第一个字母应返回与 B 位于同一行的字母,但该字母具有 N 列。我希望有人可以解释一种方法让我完成此操作。
在友好用户的帮助下,部分代码如下所示:
def find_index(letter, table):
for i,li in enumerate(table):
try:
j=li.index(letter)
return i,j
except ValueError:
pass
raise ValueError("'{}' not in matrix".format(letter))
print "Row:Column"
print find_index('I', table)
def encode(a, b):
if a == b:
print "ERROR: letters to encode_pair must be distinct"
print find_index (a,table)
print find_index (b, table)