python-3.x - 为什么 if 语句只适用于“i”?
问题描述
我的工作是从输入到程序中的字符串中取出元音。我尝试对 for 循环中的每个元音使用 if 语句,但是,if 语句仅适用于某些元音。(不包括在内)
def disemvowel(string):
for i in string:
char = i.lower()
rplce = string.replace(char, "")
if char == "a":
return rplce
elif char == "e":
return rplce
elif char == "i":
return rplce
elif char == "o":
return rplce
elif char == "u":
return rplce
我希望它用空字符串替换 if 语句中的元音,但是,由于某种原因,它只能与“i”一起使用。预期输出:“Ths wbst s fr lsrs LL!” 实际输出:“失败者的网站 LOL!” 输入:“这个网站是为失败者设计的,哈哈!”
解决方案
通过使用 if 语句,您正朝着正确的方向前进,但是当您返回时,它会退出该函数。你正在做的是一个成熟的回报,导致你得到一个半处理的字符串。
尝试调查continue
vowels = ['a', 'e', 'i', 'o', 'u']
res = ""
for letter in word:
if letter in vowels:
continue
res += letter
return res