我的代码应该从用户输入的字符串中删除元音。它工作正常,但我想看看是否有办法简化我的代码。
我原本没有这条线:
elif i == "A" or i == "E" or i == "I" or i == "O" or i == "U":
n.replace(i, "")
output = output
但我添加它是因为当我的输入包含大写元音时,它不会删除元音,因为它们是大写的。
有没有办法重写我的代码,以便我可以删除小写和大写的元音,而无需额外的行?
word = input()
output = word
for letter in word:
if letter.casefold() in "aeiou":
output = word.replace(letter.casefold(), "")
print(word)
print(output)
您可以检查小写字母,这样就不会重复比较:
if i.lower() in 'aeiou':
n.replace(i, "")
但是您可以使用正则表达式编写更简单的没有循环的代码:
import re
def remove_vowels(n):
return re.sub(r'[aueoi]', '', n, flags=re.IGNORECASE)
它基本上从列表 [a, u, e, o, i] 中删除任何字符,添加
flags=re.IGNORECASE
匹配小写和大写字母,并用 ''
替换每个字母,基本上将其删除