替换秘密文本中的字母

kam*_*ame 3 python string

我希望在下一封信之后将文本中的每个字母都更改为.但是这个程序不起作用.有谁知道为什么.提前致谢.y和z也存在一个小问题.

import string

letters = string.ascii_lowercase
text=("g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj. ")
for x in range(1,24):
    text.replace(letters[x],letters[x+2])
print(text)
Run Code Online (Sandbox Code Playgroud)

And*_*ffe 8

字符串在python中是不可变的.

因此text.replace 返回一个字符串,但不会更改其原始字符串.

鉴于此,您实际上不应该使用text.replace,因为您必须更改字符串24(或可能是26;见下文).相反,您实际上可以创建一个转换表来立即执行所有更改,并使用string.translate.

要做到这一点,你应该首先用string.maketrans字母转换成下面的第二个字母(你想用'y'和'z'做什么?我希望它们应该变成'a'和'b').这将为您提供所有可能字符的转换表translate.