如何修复显示为“{”而不是 'a' 的替换字母,这正是它的意思
How to fix replaced letter showing as '{' instead of 'a' which is what its meant to show
我正在学校参加一个名为 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 这样的词,z 的字母将替换为 { 而不是 a,例如 pi{{a,当我希望它生成 Piaaa 时
如何避免循环并仅使用 str.replace
:
text = text.replace('z', 'a')
这会将 text
中出现的所有 'z'
替换为 'a'
。
我觉得有问题
new_char = chr(ord(char) + 1)
在那行之后尝试打印 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='')
发生这种情况是因为 ord('z')
是 122 而 ord('{')
是 123。像
new_char = char(ord('a') + (ord(char) - ord('a') + 1) % 26)
应该可以。
感谢大家的帮助,我根据您的回答对代码进行了一些编辑,这似乎对我有用:
text = input('Word? ')
# This loop will encrypt one letter at a time.
for char in text:
# Encrypt char here!
if 'z' in char:
new_char = char.replace('z', 'a')
else:
new_char = chr(ord(char) + 1)
# Print the new encrypted letter.
print(new_char, end='')
非常感谢大家!
我正在学校参加一个名为 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 这样的词,z 的字母将替换为 { 而不是 a,例如 pi{{a,当我希望它生成 Piaaa 时
如何避免循环并仅使用 str.replace
:
text = text.replace('z', 'a')
这会将 text
中出现的所有 'z'
替换为 'a'
。
我觉得有问题
new_char = chr(ord(char) + 1)
在那行之后尝试打印 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='')
发生这种情况是因为 ord('z')
是 122 而 ord('{')
是 123。像
new_char = char(ord('a') + (ord(char) - ord('a') + 1) % 26)
应该可以。
感谢大家的帮助,我根据您的回答对代码进行了一些编辑,这似乎对我有用:
text = input('Word? ')
# This loop will encrypt one letter at a time.
for char in text:
# Encrypt char here!
if 'z' in char:
new_char = char.replace('z', 'a')
else:
new_char = chr(ord(char) + 1)
# Print the new encrypted letter.
print(new_char, end='')
非常感谢大家!