alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'w',
'x', 'y', 'z']
phrase = input('Write a phrase: ')
for i in range(1, 26):
phrase = phrase.replace(alphabet[i-1], alphabet[i+12])
print(phrase)
我只是想用一个短语替换13个字母中的字母,但它在第5行显示错误,请帮忙。
答案 0 :(得分:3)
当i
已超过15
时,phrase[i+12]
会导致错误,因为phrase[27]
不存在。
您可以使用一些计算来解决问题:
for i, v in enumerate(phrase):
phrase = phrase.replace(v, alphabet[(i+12)%26])
此外..您遗失了j
,u
和v
..
答案 1 :(得分:3)
如果我没弄错的话,这基本上就是ROT13:
>>> import codecs
>>> codecs.encode("Hello World!", "rot_13")
'Uryyb Jbeyq!'
答案 2 :(得分:1)