计算句子的功能

时间:2017-04-05 18:23:57

标签: python

file = open(file_variable)
n = 0
line = file.readline()

while line != "":
    for ch in line:
        if ch in '.?!':
            n += 1
    file.readline()

return n

file_variable.close()

当我尝试在主程序中打印n时,它不会返回任何内容。有人可以就我做错了什么给我建议。我对如何阅读txt文件有点困惑。

主程序

from functions import sentence_count

file_variable = 'pelee.txt'

n = sentence_count(file_variable)

print(n)

1 个答案:

答案 0 :(得分:2)

您需要将line变量重置为文件的下一行:

while line != "":
    for ch in line:
        if ch in '.?!':
            n += 1
    line = file.readline()

我会反复遍历文件类对象的行:

f = open('example.txt', 'r')

for line in f:
    if '.' in line or '?' in line or '!' in line:
        n += 1

这是有效的,因为Python的open()函数返回一个可迭代对象(io.TextIOBase),允许您在for循环中导航文件的内容。 iterable返回的每个项目都是文件的下一行。您可以在line变量中查看您要查找的字符。