Блог

Python: for-else

А вы в знали, что в Python есть for-else? Лично Я нет, и в книжках не встречал, а вот оказывается есть.Поэтому когда встретите подобный код пусть он вас в ступор не вводит:

for a in range(1,10):
    for b in xrange(1,10):
       if b == a:
          pass
       else:
          pass
    else:
       print 'Run - Ok'
else:
    print 'Done'

Run – Ok
Run – Ok
Run – Ok

Run – Ok
Done

Выглядит странно, но это довольно удобная штука, если в for есть break. else после for выполняется только в случае успешного завершения for. Если for прерывается break, то код в else выполняться не будет.

Например, этом коде строка ‘qwe’ выведена не будет, т.к. for прервался break-ом:

>>>for a in xrange(1,2):
...    break
...else:
...    print('Yes')
...
>>>

 

Для ленивых:
http://docs.python.org/tutorial/controlflow.html
http://brainsburn.blogspot.ca/2012/07/python-for-else.html
http://psung.blogspot.ca/2007/12/for-else-in-python.html