Обоснование предложений for-else
Блок else
запускается в предложении if-else, если if
условие не выполняется. Точно так же в предложении for-else блок else
запускается, если определенное условие не выполняется. Это условие всегда True
, если не происходит break
.
Это условие for
довольно неявно и, возможно, не слишком интуитивно понятно, но в некоторых случаях я нахожу его довольно интересным и полезным. Хотя я не часто им пользуюсь.
И логику for-else можно заменить флагом, который может быть более удобен для некоторых людей. Итак, следующий код:
for i in range(10): if i == 5: break else: print('No break')
можно перевести на:
f = True for i in range(10): if i == 5: f = False break if f: print('No break')
Последний может быть более читабельным, но я считаю, что первый более компактен и элегантен. Однако использование ключевого слова else
является спорным, так как может привести к путанице. Я согласен с тобой.