从字符串中删除所有元音,然后打印没有元音的新字符串

2024-04-26 10:03:23 发布

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

我们的目标是编写一个删除用户输入字符串中所有元音的代码;我的代码不会打印没有元音的最后一个新的_inp字符串。看来这条线是新的=inp.更换(ch,“”)不执行任何操作。有人吗?谢谢您。在

inp="je m'en fou!"
vocals=['a','e','i','o','u']
for ch in inp.lower():
    if ch in vocals:
        new_inp=inp.replace(ch,"")
        print (new_inp)

Tags: 字符串代码用户in目标newforch
3条回答

给你:

inp="je m'en fou!"
vocals=['a','e','i','o','u']
for ch in inp.lower():
    if ch in vocals:
        inp=inp.replace(ch,"")
        print (inp)

每次循环迭代时都用原始字符串覆盖字符串,而不是累积更改。在

您需要在一个字符串中累积所有更新。当前方法仅替换初始字符串,并在下一次迭代中放弃以前的更新:

new_inp = inp
for ch in inp.lower():
    if ch in vocals:
        new_inp = new_inp.replace(ch,"")
        print(new_inp)

您可以使用以下生成器表达式来实现相同的效果,该表达式将过滤掉非元音项:

^{pr2}$

您可以使用re模块。在

import re
inp="je m'en fou!"
re.sub('[aeiou]', '', inp)

输出:

^{pr2}$

相关问题 更多 >