Вывод: True, False, 10 и []. or возвращает первый истинный операнд либо последний; and — первый ложный либо последний. Результат не обязан иметь тип bool.
Разбор вывода логических операторов or и and в Python
Вывод: True, False, 10 и []. or возвращает первый истинный операнд либо последний; and — первый ложный либо последний. Результат не обязан иметь тип bool.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Какой результат будет выведен при выполнении следующего фрагмента кода? Пример иллюстрирует поведение операторов or и and при работе с различными типами данных.
print(True or False)
print(True and False)
print(10 or 0)
print(10 and [])
Ответ
Вывод: True, False, 10 и []. or возвращает первый истинный операнд либо последний; and — первый ложный либо последний. Результат не обязан иметь тип bool.
Точный вывод:
True
False
10
[]
True or False останавливается на True. True and False возвращает False. Число 10 истинно, поэтому 10 or 0 возвращает само число 10. В 10 and [] первый операнд истинный, и результатом становится второй — пустой список. Операторы используют короткое замыкание: ненужный правый операнд вообще не вычисляется.