2015-10-30 2 views
-3

Зачем печатать последнюю строку? Эта строка должна печататься, если не найден «слово» вообще?Почему это не работает?

with open(name) as f: 
    all_Line-s = f.read_lines() 
    for line_Number in range(l en (all_Lines)): 
     if word in all_Lines[line_Number]: 
      print(word,"found in line {0}".format(line_Number+1)) 
      continue 
    else: 
     print(word,'not found') 

Результат:

'word' found in line 3 
'word' found in line 6 
'word' found in line 43 
'word' not found 

я переключатель 'если' и 'еще' и использовать перерыв, но ...

+0

'else' после цикла означает, что«если не был перерыв» – khelwood

+1

Вы должны прочитать на [как спросить хорошие вопросы] (https://stackoverflow.com/help/how-to-ask). – ray

ответ

1

else в for/else выполняется, если цикл for завершается без встретив break.

Вы можете использовать флаг, чтобы контролировать, будет ли печататься «не найден» сообщение:

with open....: 
    found = False 
    ... 
    for line...: 
     if word in ...: 
      found = True 
     ... 
    ... 
    if not found: 
     print(word, 'not found') 
Смежные вопросы