Задать вопрос
@User23

Истина в Python?

Здравствуйте, подскажите пожалуйста.
если
if 8:
...   print('8 == true')
...
8 == true

почему
8 == True
False

?
  • Вопрос задан
  • 1132 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Выражение 8 == True не истинно потому, что булевые значения в Python - подтипы целых чисел. True - это фактически единица, а 1 не равно 8.

В выражении if это срабатывает потому, что в контексте условных выражений производится неявное преобразование числа 8 в булевое значение. То есть интерпретатор сначала преобразовывает число (или что-либо другое) в 1 или 0 в соответствии с правилами преобразования, а потом выполняет с получившимся значение логическую операцию.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
aRegius
@aRegius
Python Enthusiast
Предлагаю заменить вопросительный знак на восклицательный!
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
потому что обратное if 8 будет if not 8 / if 8 is None, а не никакие ТруФалсы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы