ничего не распечатывается даже для некоторых строк, где print () находится вне блока continue - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть файл ~/practice/search_from, который выглядит следующим образом:

From i
ssdfadfksjaflkf
asdfasf
adf
sd
fd
fs
sgdggggggggggggsd
gsg
sdg
From j
dasdfewf
sdfas
adsf

Я хочу напечатать строки, которые начинаются с From.

Итак, я сделал в приглашении python следующее:

>>> fhandle=open('practice/search_from')
>>> for line in fhandle:
...    if not line.startswith('From '):
...     continue
...    else:
...     print(line.rstrip())
... 
From i
From j

Этот код работает нормально.

Однако, когда я ставлю

>>> fhandle=open('practice/search_from')
>>> for line in fhandle:
...     line = line.rstrip()
...     if not line.startswith('From:') :
...         continue
...     print(line)
... 

или

>>> fhandle=open('practice/search_from')
>>> for line in fhandle:
...     line = line.rstrip()
...     if not line.startswith('From:') :
...         continue
...     else:
...         print(line)

, ничего не печатается.Почему это так?Есть ли способ исправить последние два кода?

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Ваши коды в порядке, кроме того, что вы ищете с From:.

Удалите colon(:) из ваших кодов, и он будет работать правильно:

In [2296]: fhandle=open('practice/search_from')

In [2297]: for line in fhandle:
      ...:     line = line.rstrip()
      ...:     if not line.startswith('From'):
      ...:         continue
      ...:     print(line)
      ...:     
From i
From j
0 голосов
/ 11 декабря 2018

Ничего не печатается, потому что строки в вашем файле не начинаются с From:.

line.startswith('From:') будет True, только если строка начинается с «From:» (включая двоеточие).Следовательно, not line.startswith('From:') всегда будет True в вашем файле (строки не начинаются с From:), и вы всегда будете оценивать строку continue, которая переходит к следующей итерации цикла for.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...