我已经尝试过寻找答案但似乎没有任何帮助。我已经完成了:
def noVowel(s):
'return True if string s contains no vowel, False otherwise'
for char in s:
if char.lower() not in 'aeiou':
return True
else:
return False
无论字符串如何,它总是返回True。
答案 0 :(得分:5)
你几乎把它弄好了,但问题是,只要你看到一个非元音的角色,你就会在那里返回True。在您确定所有是非元音之后,您希望返回True:
def noVowel(s):
'return True if string s contains no vowel, False otherwise'
for char in s:
if char.lower() in 'aeiou':
return False
return True # We didn't return False yet, so it must be all non-vowel.
重要的是要记住,return
会阻止其余的功能运行,所以只有在您确定功能完成计算时才会返回。在您的情况下,即使我们没有检查整个字符串,我们也可以安全地return False
看到元音。
答案 1 :(得分:2)
any
和短路属性:
def noVowel(s):
return not any(vowel in s.lower() for vowel in "aeiou")