def main():
print(count)
def countVowels(string):
vowel=("aeiouAEIOU")
count=0
string=input("enter a string:")
for i in string:
if i in vowel:
count +=1
main()
为什么当我尝试运行它时,它告诉我未定义计数。而且我知道有很多这样的问题,但我是函数的新手,可以使用帮助。
最佳答案
因为 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"))
关于python-3.x - 在python中计算元音,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19237791/