@User23

Истина в Python?

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

почему
8 == True
False

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

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

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

Войти через центр авторизации
Похожие вопросы
23 мая 2019, в 04:22
500 руб./в час
22 мая 2019, в 23:03
15000 руб./за проект
22 мая 2019, в 22:44
1000 руб./за проект