else语句保持循环在python中打印“not found”

2024-04-25 05:54:21 发布

您现在位置:Python中文网/ 问答频道 /正文

如果在文本文件中找不到字符串,我想打印一次“找不到”。但是在文件中有多少行之后,字符串一直在打印。因为它读了所有的行。所以它的打印都不是根据它有多少行找到的。还有别的办法吗?你知道吗

import os

f = open('D:/Workspace/snacks.txt', "r");
class line:
    for line in f.readlines():
        if line.find('chocolate') != -1:
            print "found ", line
        elif line.find('milkshake') != -1:
            print "found ", line
        else:
            print "not found" 

Tags: 文件字符串importtxtoslineopenfind
2条回答

您在寻找python中的break语句吗?顾名思义,这句话只是让你脱离了循环。你知道吗

例如:

for line in f.readlines():
        if line.find('chocolate') != -1:
            print "found ", line

        elif line.find('milkshake') != -1:
            print "found ", line

        else:
            print "not found"
            break

首先,删除这一行-class line:。重新缩进下面的行。你知道吗

有两件事可以帮助你:

  1. break子句
  2. ^for循环中的{}子句

请阅读control flow的官方教程。你知道吗

然后代码变成这样

>>> for line in f.readlines():
...     if line.find('chocolate') != -1 or line.find('milkshake') != -1:
...             print "found ", line
...             break
... else:
...     print "not found"
...
not found

相关问题 更多 >