为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

侃侃尔雅 2021-09-14 10:38:00
我有一个~/practice/search_from看起来像这样的文件:From issdfadfksjaflkfasdfasfadfsdfdfssgdggggggggggggsdgsgsdgFrom jdasdfewfsdfasadsf我想打印以 From 开头的行。所以我在 python 提示中做了以下操作:>>> fhandle=open('practice/search_from')>>> for line in fhandle:...    if not line.startswith('From '):...     continue...    else:...     print(line.rstrip())... From iFrom 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 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

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


查看完整回答
反对 回复 2021-09-14
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

没有打印出任何内容,因为您的文件中没有任何行以From:.

line.startswith('From:')True仅当该行以“From:”(包括冒号)开头时才会出现。因此not line.startswith('From:')将始终True在您的文件中(没有以 开头的行From:),并且您将始终评估该continue行,该行跳转到for循环的下一次迭代。


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信