因为count
是局部变量。它仅针对countVowels
功能定义。此外,您只定义countVowels
函数,但从不运行它。所以count
即使在那个函数中也永远不会创建......
你可以这样做:
def main(x):
print(x)
def countVowels():
vowels = "aeiouAEIOU"
count = 0
string = raw_input("enter a string:")
for i in string:
if i in vowels:
count += 1
return count
main(countVowels())
这里countVowels
返回计数,然后您可以打印它或将其分配给变量或使用它做任何您想做的事情。您还遇到了我修复的其他一些错误...即,函数参数string
是无用的,因为您实际上将其作为用户输入。
在另一个主题上,你可以让你的计数更 Pythonic:
sum(letter in vowel for letter in string)
此外,在这里我不认为需要创建一个全新的函数来打印您的结果......只要做print(countVowels())
,你就完成了。
另一个改进是只关心小写字母,因为你并没有真正区分它们:
vowels = "aeiou"
string = string.lower()
如果您不想接受用户输入,而是想计算给定单词中的元音,您可以这样做(包括上面概述的改进):
def countVowels(string):
vowels = "aeiou"
string = string.lower()
return sum(letter in vowel for letter in string)
print(countVowels("some string here"))