我需要计算给我的文本文件中的元音数量(使用python程序)并返回数字。无论出于何种原因,当我运行程序时,文件返回0个元音,即使每次循环并找到元音时count变量应该增加1。
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 :(得分: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')