2024-04-26 10:03:23 发布
网友
我们的目标是编写一个删除用户输入字符串中所有元音的代码;我的代码不会打印没有元音的最后一个新的_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)
给你:
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)
您可以使用以下生成器表达式来实现相同的效果,该表达式将过滤掉非元音项:
您可以使用re模块。在
re
import re inp="je m'en fou!" re.sub('[aeiou]', '', inp)
输出:
给你:
每次循环迭代时都用原始字符串覆盖字符串,而不是累积更改。在
您需要在一个字符串中累积所有更新。当前方法仅替换初始字符串,并在下一次迭代中放弃以前的更新:
您可以使用以下生成器表达式来实现相同的效果,该表达式将过滤掉非元音项:
^{pr2}$您可以使用
re
模块。在输出:
^{pr2}$相关问题 更多 >
编程相关推荐