我正在尝试建立一个解码函数。此函数应查找“短语”中的字母与“键”中的字母之间的距离,距离后应跟“键”中相应的字母。你知道吗
例如,让'phrase'='hello'和'key'='sam'那么,由于'h'与's'相差11个字母,因此通过函数的一次迭代应该返回's11'
我不知道为什么我的“解码短语”功能不起作用。你知道吗
def get_distance(letter1, letter2):
if letter1 < letter2:
x = (ord(letter2) - ord(letter1))
elif letter1 == letter2:
x = 0
elif letter1 > letter2:
x = (ord(letter2) - ord(letter1)) + 26
return x
def decode_phrase(phrase, key):
new_word = ''
i = 0
k = 0
for p in range(len(phrase)):
for q in range(len(key)):
y = get_distance(phrase[i], key[k])
new_word = new_word + key[k] + str(y)
k = k +1
i = i +1
return new_word
当我输入decode\u短语('mike','sam')时,我当前得到的字符串索引超出了范围。但代码中有比我确定的更严重的问题
如果要在到达键字符串的末尾时重复该键字符串,那么只需要一个循环,在短语中生成索引。您可以使用
%
模运算符将第二个索引放入键中,必要时环绕:当} 来制作一个版本,它可以适用于任何类型的iterable(不仅仅是indexable序列):
phrase
和key
是字符串时,这可能是最简单的解决方案。但是如果你想有点花哨的话,你可以用^{相关问题 更多 >
编程相关推荐