2015-10-12 42 views
0

我需要計算給予我的文本文件中的元音數(使用python程序)並返回數字。無論什麼原因,當我運行程序時,即使計數變量每次循環並找到元音時應該增加1,文件也會返回0元音。檢查文本文件中的字母python

def numVowels(file): 
    count = 0 
    opened_file = open(file) 
    content = opened_file.readlines() 
    for char in content: 
     if char.lower() in 'aeiou': 
      count += 1 
    return(count) 

我不知道這是因爲我有一個文本文件的工作,但通常我能夠做到這一點沒有問題。任何幫助是極大的讚賞。

謝謝!

回答

0

readlines()返回文件中的行列表,所以for char in content:意味着char是文件中的一行文本,而不是你正在尋找的。
您可以將整個文件read()到內存或通過行的文件行迭代,然後通過行字符在迭代的時間:

def numVowels(file): 
    count = 0 
    with open(file) as opened_file: 
     for content in opened_file: 
      for char in content: 
       if char.lower() in 'aeiou': 
        count += 1 
    return count 

你可以總結的1的發電機來產生相同的值:

def numVowels(file): 
    with open(file) as f: 
     return sum(1 for content in f for char in content if char.lower() in 'aeiou') 
+0

非常感謝。我沒有意識到它返回了一個行列表! –

相關問題