Eliont
Но я не понял - а к чему else относится и когда срабатывает?
>>> while True:
... for i in range(3):
... print(i + 1)
... else:
... break
...
1
2
3
>>>
else относится к for, а содержимое выполняется после for
>>> while True:
... for i in range(5):
... print(i + 1)
... if i == 3:
... break
... else:
... break
...
1
2
3
4
1
2
3
4
эта повисает
>>> n = 0
>>> while n < 10:
... print(n + 1)
... n += 1
... else:
... print('while loop end')
...
1
2
3
4
5
6
7
8
9
10
while loop end
>>> n = 0
>>> while n < 10:
... print(n + 1)
... if n == 5:
... break
... n += 1
... else:
... print('while loop end')
...
1
2
3
4
5
6
>>>
да, видимо else гарантирует, что цикл выполнился полностью