2014-03-29 28 views
2

我只需要一些計算元音函數的幫助,就可以使函數返回比元音更多元音的單詞列表。計算函數中的元音

def moreVowels(text): 
    vowels = 'AEIOUaeiou' 
    words = text.split() 
    returnList = [] 
    for word in words: 
     vowelCount = 0 
     for letter in word: 
      if letter in vowels: 
       vowelCount += 1 
     if vowelCount > len(word)/2: 
      returnList.append(word) 
    return returnList 

mlk = 'Our lives begin to end the day we become silent about things that matter' 

print(moreVowels(mlk)) 

當我打印該函數時,它返回單詞兩次,不知道爲什麼。

['Our','Our','about','about'] 
+0

看起來好,你是怎麼稱呼這個方法的? –

+3

事實上,'mlk' var沒有'Our'這個詞,所以你做錯了別的東西或者只是一個錯字。 –

+1

你也可以通過用'if letter.lower()in vowels'替換'if letter in vowels:'來減少你的元音到一個例子(例如較低) - 只是一個想法 –

回答

2

正如您發佈它正常工作。但是,如果我改變了元音的壓痕數if聲明,如下所示:

def moreVowels(text): 
    vowels = 'AEIOUaeiou' 
    words = text.split() 
    returnList = [] 
    for word in words: 
     vowelCount = 0 
     for letter in word: 
      if letter in vowels: 
       vowelCount += 1 
      if vowelCount > len(word)/2: #indent changed 
       returnList.append(word) #indent changed 
    return returnList 

我得到相同的結果像你一樣。檢查源代碼中的縮進,並記住不要混合製表符和空格。