Как работает вариатор or в Python?

Добрый день.

Небольшой вопрос.

Почему вот это не работает:

elif int(step_id) == 3 or 4:

А вот это работает:

elif int(step_id) == 3 or int(step_id) == 4:
  • Вопрос задан
  • 207 просмотров
Решения вопроса 1
Avernial
@Avernial
Разрабатываю научное ПО на языке Python.
Первый вариант не корректен с точки зрения логических операции. И у вас всегда будет True.
Например step_id = 2:
  • 2 == 3 -> False
  • False or 4 -> 4
  • bool(4) -> True
  • Результат: True


Например step_id = 3:
  • 3 == 3 -> True
  • True or 4 -> True
  • Результат: True


Например step_id = 6:
  • 6 == 3 -> False
  • False or 4 -> 4
  • bool(4) -> True
  • Результат: True


А второй вариант правильный.
Например step_id = 2:
  • 2 == 3 -> False
  • 2 == 4 -> False
  • False or False
  • Результат: False


Например step_id = 3:
  • 3 == 3 -> True
  • 3 == 4 -> False
  • True or False -> True
  • Результат: True


Для того чтобы понимать как происходит выполнение вам нужно прочитать про приоритет выполнения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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