我想知道我哪里出错了。目标是用 X 替换用户输入中的字母 e,用 * 替换空格。这都是在 python 中完成的,结果应该是 hxllo*world
i=0
str=input('please enter a phrase ')
numberOfChar=len(str)
copy=''
while i < numberOfChar:
if str[i] == 'e':
copy=str.replace('e','x')
elif str[i] == ' ':
copy=str.replace(' ', '*')
i = i+1
print(copy)
谢谢
更多信息:
它是为大学而设计的,必须使用 while 循环和 if 函数。当我意识到 street.replace 指的是变量名而不是我错误地指的是函数名时,一切都变得清楚了。谢谢大家
请您参考如下方法:
如果我正确理解了您的项目要求,您可能希望完全避免 str.replace() 并使用类似这样的方法,这只是 @Ajax1234 答案的更明确的变体:
string = input('Enter a string: ')
collector = []
for char in string:
if char == 'e':
char = 'x'
elif char == ' ':
char = '*'
collector.append(char)
new_string = ''.join(collector)
旁注:您不需要循环变量 i 来遍历字符串。您可以直接遍历字符串中的字符,如上所示。
标准库选项是使用 str.translate():
>>> table = str.maketrans(' e', '*x')
>>> 'hello world'.translate(table)
'hxllo*world'
