Почему этот блок `else` работает, но не на том же уровне, что и в случае if?
Этот код работает довольно хорошо и генерирует требуемый список простых чисел. Но else
Блок, который печатает наши простые числа, находится вне блока, но все равно работает, может кто-нибудь объяснить это мне?
for num in range(0, 100 + 1):
# prime numbers are greater than 1
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
Ссылка: programiz.com
3 ответа
Питон имеет аккуратный for-else
построить:
Для циклов также есть предложение else, с которым большинство из нас незнакомы. Предложение else выполняется, когда цикл завершается нормально. Это означает, что цикл не встретил никакого разрыва.
На самом деле, блок for
также имеет ключевое слово else
,
Распространенным вариантом использования предложения else в циклах является реализация поисковых циклов; Допустим, вы выполняете поиск элемента, который соответствует определенному условию, и вам необходимо выполнить дополнительную обработку или вызвать ошибку, если не найдено приемлемого значения.
см. https://shahriar.svbtle.com/pythons-else-clause-in-loops