在python中替换字符串中的2个字符

2024-06-26 03:45:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我在想我哪里错了。目标是将用户输入中的字母e替换为X,空格替换为*。这些都是用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函数。当我意识到街道。更换引用了变量名,而不是我错把函数名改得一清二楚。谢谢大家


Tags: 函数用户目标worldinputif字母replace
3条回答

如果我正确地理解了您的项目需求,那么您可能希望完全避免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()

^{pr2}$

您可以使用字典和get方法:

convert = {"e":"x", ' ':"*"}
s = "hello world"
final_s = ''.join(convert.get(i, i) for i in s)

输出:

^{pr2}$

使用replace方法比尝试使用它要简单得多。在

phrase=input('please enter a phrase    ')

copy = phrase.replace('e', 'x')
copy = copy.replace(' ', '*')
print(copy)

相关问题 更多 >