Я вижу одну проблему:
while char != '.' or '!' or '?':
Должно быть:
while char != '.' and char != '!' and char != '?':
... или хотя бы что-то логически эквивалентное, но чище и вкуснее.В первом случае Python будет пытаться вычислить char != '.'
, а затем вычислить '!'
и вычислить '?'
, оба считают true
(потому что они не равны нулю).Так что цикл продолжается вечно!
Что касается:
j = 0
for j in range (0, i-1):
char = text.read (1)
if char == '.':
j = j+1
Я не думаю, что это делает то, что вы намерены сделать.Предполагая, что текстовый файл похож на «Это предложение.Это другое предложение. ', Этот цикл установит char в' i ', а j в 1. Возможно, вы намеревались использовать цикл while, как я описал выше, вместо одного оператора if.