为什么python替换函数不起作用?

为什么python替换函数不起作用?,python,Python,我正在用python制作自己的替换密码,并尝试使用replace函数。但似乎它不起作用 print("Scylla\n\n") w = input("Encode (E) or Decode (D)?\n\n") x = str(input("What is the message?\n\n")) y = str(x.upper()) if w == "E": for char in y: y

我正在用python制作自己的替换密码,并尝试使用replace函数。但似乎它不起作用

print("Scylla\n\n")
w = input("Encode (E) or Decode (D)?\n\n")
x = str(input("What is the message?\n\n"))
y = str(x.upper())
if w == "E":
    for char in y:
        y.replace("A", "N")
        y.replace("B", "O")
        y.replace("C", "P")
        y.replace("D", "Q")
        y.replace("E", "R")
        y.replace("F", "S")
        y.replace("G", "T")
        y.replace("H", "U")
        y.replace("I", "V")
        y.replace("J", "W")
        y.replace("K", "X")
        y.replace("L", "Y")
        y.replace("M", "Z")
        y.replace("N", "A")
        y.replace("O", "B")
        y.replace("P", "C")
        y.replace("Q", "D")
        y.replace("R", "E")
        y.replace("S", "F")
        y.replace("T", "G")
        y.replace("U", "H")
        y.replace("V", "I")
        y.replace("W", "J")
        y.replace("X", "K")
        y.replace("Y", "L")
        y.replace("Z", "M")
    print(y)

但它所做的只是用大写字母打印短语输入。我做错了什么?

替换功能工作正常。你只是用错了。它返回一个新字符串并进行替换,而不是更新旧字符串,因此需要保存其返回值。(通常,您的第一反应应该始终是“我使用的是此标准,常见的错误”,而不是“此标准,常见的错误”。

replace返回被替换的值。请尝试
y=y.replace(..)
字符串是不可变的,因此
replace
不会在适当的位置修改字符串。请注意,由于将A替换为N,然后将N替换为A,最终结果应该与开始时相同。