即使对于 print() 超出 continue 块的某些行,也没有打印出任何内容

我有一个~/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)

没有打印出来。为什么会这样?有没有办法修复最后两个代码?


侃侃尔雅
浏览 163回答 2
2回答

饮歌长啸

您的代码很好,除了您正在使用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 iFrom j

繁华开满天机

没有打印出任何内容,因为您的文件中没有任何行以From:.line.startswith('From:')True仅当该行以“From:”(包括冒号)开头时才会出现。因此not line.startswith('From:')将始终True在您的文件中(没有以 开头的行From:),并且您将始终评估该continue行,该行跳转到for循环的下一次迭代。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python