[英]Problem with Python Code and the Functions in it
我有一個問題,我必須解決 Python 中的任務,但我不知道該怎么做。 任務是定義一個 function number_of_vowels,其中 output 應該是單詞中元音的數量。 有了這個 function,我必須寫另一個,many_vowels,它與一個列表一起工作,一個數字,其中數字表示一個單詞中必須至少有多少個元音才能附加到結果列表中,然后我必須 append 這個詞。 感謝大家幫助我;D.
這是代碼:
Wort = "parameter"
def number_of_vowels(Word):
result = 0
counter0 = 0
while result < 20:
if Word[counter0] == 'a' or 'e' or 'i' or 'o' or 'u':
result = result + 1
counter0 = counter0 + 1
else:
counter0 = counter0 + 1
return result
Words = []
counter1 = 0
def many_vowels(List , number):
if number_of_vowels(List[counter1]) < number:
counter1 + 1
else:
Words.append(List[counter1])
counter1 + 1
return Words
這段代碼只給了我字母 a 的答案,而不是其他元音的答案。 為了
print(number_of_vowels(Wort))
output 是:1 但這個詞中有 4 個元音,它還說:第 21 行,在 many_vowels IndexError: string index out of range
您正在嘗試使用錯誤的括號調用 function。 Function 調用應使用圓形調用。
嘗試用number_of_vowels(List[counter1])
更改number_of_vowels[List[counter1]]
此代碼包含一些錯誤:
調用 function 應該使用圓括號: number_of_vowels(List[counter1])
而不是number_of_vowels[List[counter1]]
執行result + 1
不會更改變量 result 的值,因為您沒有將計算結果放入變量中。 使用result = result + 1
(計數器相同)
在number_of_vowels
function 中,您要掃描整個單詞嗎? 因為你沒有使用任何循環,所以它目前只看第一個字母。 其次,您將壓縮放在結果中,然后將其加 1。 我不太確定為什么
編輯:
Word = "parameter"
def number_of_vowels(Word):
result = 0
counter0 = 0
for index, letter in enumerate(Word):
if letter == 'a' or letter == 'e' or letter == 'i' or letter == 'o' or letter == 'u':
result = result + 1
return result
Words = []
counter1 = 0
def many_vowels(List_name , number):
for index, item in enumerate (List_name):
if number_of_vowels(item) >= number:
Words.append(item)
return Words
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.