gpt4 book ai didi

python - 为什么我必须创建一个空字符串来替换字符串中的所有字符?

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:40 24 4
gpt4 key购买 nike

我正在编写一个 ROT13 函数,但我不明白为什么以下函数不起作用:

def ROT(string):
# y = 0
for char in string:
x = ord(char)
if 97 <= x < 110 or 65 <= x < 78:
# string[y]=char.replace(char, chr(x+13))
char=char.replace(char, chr(x+13))
print(char)
# y+=1
elif x >= 110 or 78 <= x < 91:
# string[y]=char.replace(char, chr(x-13))
char=char.replace(char, chr(x-13))
print(char)
# y+=1
return string

string = ROT('Hello, lorem ipsum dolor sit amet')
print(string)

调用该函数只是打印原始字符串。正如您在上面的注释行中看到的那样(如果有点难以阅读,请见谅),我尝试定义一个变量 y 以在字符串中递增,然后访问它,但出现运行时错误。我想出的解决方案是在函数的开头创建一个空字符串(从我的谷歌搜索来看,这似乎是大多数人使用的解决方案),但没有人解释为什么会这样。如果要替换其中的每个字符,为什么不能返回原始字符串?

最佳答案

您的代码中的问题是您没有操作原始字符串。您只是在替换临时变量 char 而不是在原始字符串中。由于字符串在 python 中是不可变的,您可以尝试使用新字符串而不是替换原始字符串,您可以将字符附加到新字符串。喜欢:

modified_string = ""
for char in string:
#whatever condition
modified_string += #value to be added

关于python - 为什么我必须创建一个空字符串来替换字符串中的所有字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20151364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com