Форум сайта python.su
Поддерживаю - выходить из цикла по исключению - это совсем не то, для чего их создавали.
И даже перехват StopIteration может привести к багу, если этот цикл - в генераторе (так, что я бы использовал аж MyStopIterationException :) ).
И чем не нравится вариант pyuser? - вполне ведь подходящее и красивое решение.
Офлайн
Во-первых, насколько я понял, работает не совсем так, как хотел автор:
In [21]: for x in xrange(1, 5):
for y in xrange(1, 5):
if x<4:
print x, y
else:
break
else:
for z in xrange(1, 3):
print z
....:
....:
1 1
1 2
1 3
1 4
1
2
2 1
2 2
2 3
2 4
1
2
3 1
3 2
3 3
3 4
1
2
Офлайн
>>> for i in range(2):
print(i)
else:
print(3)
0
1
3
>>> for i in range(2):
print(i)
break
else:
print(3)
0
Офлайн
Обедающий философhttp://docs.python.org/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops
А во-вторых - что это за зверь такой - else без if?
Отредактировано (Июнь 18, 2011 21:36:52)
Офлайн