Как работает вариатор 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


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

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

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