Python的新手。我想从以元音开头的输入字符串返回第一个工作。如果找到,则返回单词,否则返回空字符串。具有以下代码,但是else语句似乎不起作用。
for word in string_list:
if word[0] in ['a','e','i','o','u']:
return word
else:
return ""
答案 0 :(得分:4)
您只能在函数内部return
,例如:
string_list = ['frst', 'hello', 'and']
def first_with_vowel(words):
vowels = 'aeiou'
for word in words:
if any(vowel == word[0] for vowel in vowels):
return word
return ""
print(first_with_vowel(string_list))
输出
and
要验证是否任何一个元音是单词的第一个字母,可以使用any。如果任何元音是单词的第一个字母,则函数True
的所有字符都等于该单词。
在您的代码中,else
的位置也不正确,如果第一个单词不是以元音开头,即使第二个单词都以元音开头,您也将返回""
。您可以删除else,然后在循环结束时返回""
(例如,在上面的示例代码中),这意味着没有单词以元音开头。
答案 1 :(得分:0)
return应该在函数中使用。所以,
def checker(word):
if word[0] in ['a','e','i','o','u']:
return word
else:
return ""
checker("isuru")
这有效。
答案 2 :(得分:0)
在您的代码中,如果在函数内部使用for循环,则for循环将仅执行一次,因为您只是在检查第一个单词并从函数中返回。相反,您只能在for循环内使用if
条件,并在for循环外返回空字符串部分。
您还需要检查小写和大写字母/元音。 string_list这是字符串列表。
def findFirstWordWithVowel(string_list):
for word in string_list:
if word[0] in "aeiouAEIOU":
return word
return ""