问题描述
name = "RED BLUE"
rname = str(name).replace("R","A")
rname = str(name).replace("E","B")
rname = str(name).replace("D","C")
rname = str(name).replace("B","D")
rname = str(name).replace("L","E")
rname = str(name).replace("U","F")
rname = str(name).replace("E","G")
print(rname)
它应该给我一个输出说:
ABC DEFG
但它没有,我试图在互联网上搜索但没有帮助所以我来到这里。
有人可以帮我吗?
提前致谢。
解决方法
正如@Patrick Artner 所提到的,您没有使用 rname
,而是在 name
上进行操作。每次都重新初始化 rname
变量。
在 python 中有一种优雅的方法可以使用 str.translate
name = "RED BLUE"
name = name.translate(str.maketrans({'R': 'A','E':'B','D':'C','B':'D','L': 'E','U': 'F','E': 'G'}))
print(name)
'AGC DEFG'
,
您正在覆盖变量 rname。只需使用:
name = "RED BLUE"
rname = name.replace(name,"ABC DEFG")