Найти - Пользователи
Полная версия: циклы for
Начало » Python для новичков » циклы for
1 2
ZAN
Поддерживаю - выходить из цикла по исключению - это совсем не то, для чего их создавали.
И даже перехват 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
А во-вторых - что это за зверь такой - else без if?
bazooka
>>> 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
ZAN
Обедающий философ
А во-вторых - что это за зверь такой - else без if?
http://docs.python.org/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops
Loop statements may have an else clause; it is executed when the loop terminates through exhaustion of the list (with for) or when the condition becomes false (with while), but not when the loop is terminated by a break statement.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB