Что выведет код Junior Исключения и контекстные менеджеры спрашивают часто обновлено
Порядок try/except/else/finally
Вопрос
Что выведет код? По строке на каждый print.
def run(x):
try:
print('try')
1 / x
except ZeroDivisionError:
print('except')
return 'E'
else:
print('else')
return 'OK'
finally:
print('finally')
print(run(0))
print(run(1))
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: try, except, finally, E, try, else, finally, OK. При делении на ноль срабатывает except, подготавливается return "E", но перед выходом выполняется finally.
Что выведет
try
except
finally
E
try
else
finally
OK
Разбор
При делении на ноль срабатывает except, подготавливается return "E", но перед выходом выполняется finally. При x = 1 исключения нет: else, затем finally, затем функция возвращает OK. Значение печатается вызывающим кодом после finally.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.