Программа выведет 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.