python - 替换密文中的字母

标签 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)

最佳答案

字符串在 python 中是不可变的

所以 text.replace 返回一个字符串,但不改变它的原始字符串。

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

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

关于python - 替换密文中的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1971911/

相关文章:

python - 将空白字符串替换为 nan

python - Python中使用"else"之后的"if"语句之前执行的`undo`语句

python - 在 Python 3.4 中切片真的更慢吗?

c - 删除行尾的空格

javascript - Go 中是否有与此 JS 表达式等效的内容?

.net - 如何使用VB.NET为字符串赋值?

python - 如何在 Python 中初始化元组子类的实例?

python - Google App Engine 抛出此 InvalidURL ("nonnumeric port: ' %s'"% host[i+1 :]) exception when I try to deploy. 如何修复它?

python - 我使用 DHT 计算卷积的代码有什么问题?

java - 使用括号和逗号打印二维数组