Суммирование логических переменных

Программа выведет 2 и 0. В Python bool является подклассом int, поэтому в арифметике True соответствует 1, а False — 0.

Короткий ответ

Что ответить на собеседовании

Программа выведет 2 и 0. В Python bool является подклассом int, поэтому в арифметике True соответствует 1, а False — 0.

Подробный разбор

Ответ с пояснениями

Условие

Какие значения выведет программа в каждом из приведённых примеров?

total_true = True + True
print(total_true)

total_false = False + False
print(total_false)

Ответ

Программа выведет 2 и 0. В Python bool является подклассом int, поэтому в арифметике True соответствует 1, а False — 0.

print(True + True)    # 2
print(False + False)  # 0

Оба результата имеют тип int, а не bool. Это позволяет считать истинные условия:

positive_count = sum(x > 0 for x in [-2, 0, 3, 4])
assert positive_count == 2

Арифметическое сложение не следует путать с логическими операторами: True or True даёт логическое True, тогда как сумма даёт число 2. Если требуется именно проверка наличия хотя бы одного истинного значения, понятнее использовать any, а для проверки всех — all.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее