我正在学校参加一场名为 Grok 的比赛。这是一场 Python 比赛。我想在 char 循环中用 'a' 替换字母 'z'。但是当我输入一个带有字母 z 的单词时,该字母显示为 { 而不是 a。text = input('Word? ')for char in text: if 'z' in char: new_char = chr(ord(char) + 1) new_char.replace('z', 'a') else: new_char = chr(ord(char) + 1) print(new_char, end='')如果我输入一个像 Pizza 这样的词,当我希望它产生 Piaaa 时,z 的字母会替换为 { 而不是 a,比如 pi{{a
3 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
如何避免循环并仅使用str.replace
:
text = text.replace('z', 'a')
它将替换所有出现的'z'
with 'a'
in text
。
宝慕林4294392
TA贡献2021条经验 获得超8个赞
我觉得有问题
new_char = chr(ord(char) + 1)
在该行之后尝试 print new_char ,您就会知道。
for char in text:
if 'z' in char:
new_char = chr(ord(char) + 1)
print(new_char)
new_char.replace('z', 'a')
else:
new_char = chr(ord(char) + 1)
print(new_char, end='')
函数式编程
TA贡献1807条经验 获得超9个赞
发生这种情况是因为ord('z')
122 和ord('{')
123。像
new_char = char(ord('a') + (ord(char) - ord('a') + 1) % 26)
应该管用。
添加回答
举报
0/150
提交
取消