2014-12-02 65 views
-5

如果在文本文件中找不到字符串,我想打印一次未找到。但是字符串在文件中有多少行后没有找到打印。因为它读了所有的行。所以它根据其中有多少行打印所有未找到。还有其他方法可以做到吗?else语句在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" 

回答

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 
0

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

两件事情应该可以帮助您:

  1. break条款
  2. else子句中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