tuychiev1988
@tuychiev1988
Начинающий IT разработчик

Почему результат не отличается?

Подскажиет, почему в итоге нет разницы?
a = 2
f = 5
if a or f < 0:
print('123')

----- 123

a = 2
f = 5
if a or f > 0:
print('123')

----- 123
  • Вопрос задан
  • 68 просмотров
Решения вопроса 2
Energoblock
@Energoblock
Geek
Во-первых, отступы в синтаксисе python важны. Поэтому print должен идти с отступом, чтобы python понимал, что он вложен в if.
Во-вторых, у вас некорректно написано условие. if a or f > 0 означает "если переменная a существует и не 0 или переменная f > 0, то выполняем условие".

Корректный код в вашем случае будет такой:
a = 2
f = 5
if (a < 0 ) or (f < 0):
    print('123')

a = 2
f = 5
if (a > 0 ) or (f > 0):
    print('123')
Ответ написан
@o5a
Потому что такая конструкция проверяет истинность каждого выражения, а не то, чтобы a или f было меньше нуля.

if a or f < 0
развернуто значит
if (bool(a) == True) or (bool(f < 0) == True)

И т.к. bool(2) == True то вторая часть условия уже не имеет значения.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bacon
А почему должен отличаться? Ну и на всякий случай, почитай про приоритеты, (a) or (f > 0)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы