因爲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
沒用,因爲你實際上將它作爲用戶輸入。
另一個話題,你可以讓你的數位更Python:
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"))
你真的不需要大寫的元音太,在你的for語句,只是寫字符串。 lower()那麼字符串中的所有字符將被轉換爲小寫 – 2013-10-08 09:47:59