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

时间:2014-12-02 10:46:38

标签: python

如果在文本文件中找不到字符串,我想打印未找到ONCE。但是字符串在文件中有多少行后仍然没有找到打印。因为它读了所有的线。因此根据其中的行数打印所有未找到的内容。还有其他办法吗?

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" 

2 个答案:

答案 0 :(得分:0)

你在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

答案 1 :(得分:0)

首先,删除此行 - class line:。重新缩进它下面的行。

有两件事可以帮到你:

  1. break条款
  2. else循环中的
  3. 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