for ... else?
Рассмотрим пример использования ключевого слова
Это работает не только с циклами
В общем, есть конструкции while-else и for-else, в которых
#циклы #исключения #else #условия #основы
Рассмотрим пример использования ключевого слова
else
в цикле while
:Если выполнить этот цикл, то мы получим:
>>> i = 1
>>> while i < 4:
... print(i)
... i += 1
... else:
... print('Вышли из цикла!')
Здесь блок
1
2
3
Вышли из цикла!
else
выполняется только тогда, когда условие выхода из цикла перестает быть верным. Особенность здесь в том, что если вывалиться из цикла через break
или через исключение, то блок else
выполняться не будет. Это работает не только с циклами
while
, но и с циклами for
:И так же можно с try-except блоками. На самом деле исключения в Python это не try-except-finally, а try-except-else-finally, ниже пример:
>>> for value in values:
... if value == 4:
... print('Нашли!:)')
... break
... else:
... print('Не нашли:(')
А если задать
>>> num = 0
>>> try:
... result = 1 / num
... except ZeroDivisionError:
... print('Деление на ноль!')
... else:
... print('Конечное число.')
... finally:
... print('Вычисления закончены.')
...
Деление на ноль!
Вычисления закончены.
num = float('Inf')
, то в результате деления мы получим 0 и вывод будет:Блок
Конечное число.
Вычисления закончены.
finally
выполняется в любом случае. А else
можно использовать, если нужно выполниь еще какой-то код в случае отсутствия исключений. Например, это может быть полезно в тестах, когда мы хотим логгировать как в случае падения теста на исключении, так и в случае, если исключений брошено не было. В общем, есть конструкции while-else и for-else, в которых
else
отрабатывает в случае <<штатного>> завершения цикла. Еще else
можно использовать в try-except блоке, чтобы выполнить какой-то код только в случае успешного выполнения блока try
. Во всех случаях использование else
позволяет более гибко управлять потоком выполнения 🐍 #циклы #исключения #else #условия #основы
👍2
Блок else в циклах
Многие теряются при виде блока
С циклами
#циклы #for #while #else
Многие теряются при виде блока
else
в циклах. А между тем в Python он используется не только в условных конструкциях. Рассмотрим на примере цикла for
: Блок
for i in range(1, 3):
print(i)
else:
print("loop finished normally")
# 1
# 2
# loop finished normally
else
выполняется, если выполняется условие выхода из цикла. Это значит, что если цикл прерывается как-то иначе, например, ключевым словом break
или исключением, то блок else
выполнен не будет:Чаще всего этим пользуются, когда ищут что-нибудь в цикле с использованием ключевого слова
for i in range(1, 4):
if i == 2:
raise Exception("error occurred")
else:
print("loop finished normally")
# Exception: error occurred
break
:
numbers = [1, 3, 11, 5]
for number in numbers:
if number % 2 == 0:
print ("even number found")
break
else:
print ("no even numbers in the list")
# no even numbers in the list
С циклами
while
можете попробовать самостоятельно. 🐠#циклы #for #while #else
🔥1