2017-04-05 5 views
-2
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を試しても、何も返されません。誰かが私が間違っていることについて助言を与えることはできますか?センテンスを数える関数

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

I:私はあなたがファイルの次の行にline変数をリセットする必要があり

メインプログラム

from functions import sentence_count 

file_variable = 'pelee.txt' 

n = sentence_count(file_variable) 

print(n) 
+0

「n」は印刷されません。 – Alexander

+0

メイン機能でnを印刷しようとしています –

+0

あなたのフルコードを教えてください。 – Alexander

答えて

2

.. TXTファイルを読み込むことはどのように機能するかについて少し混乱しています代わりにファイルライクなオブジェクトの行を次のように繰り返します:

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

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

このwo rksは、Pythonのopen()関数がforループ内のファイルの内容をナビゲートできるようにする反復可能オブジェクト(io.TextIOBase)を返すためです。 iterableによって返される各項目は、ファイルの次の行です。 line変数で探している文字をチェックすることができます。

+0

うんうん。ありがとうございました。 1つのループでこれを行う方法について、より詳しく説明できますか? –

+0

複数の文が1行にある場合は機能しません。 – Matthias

関連する問題