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

Добрый день.

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

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

elif int(step_id) == 3 or 4:

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

elif int(step_id) == 3 or int(step_id) == 4:
  • Вопрос задан
  • 202 просмотра
Решения вопроса 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


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

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

Войти через центр авторизации
Похожие вопросы
от 150 000 до 200 000 ₽
OnederX Москва
от 100 000 до 120 000 ₽
Кенарий Санкт-Петербург
от 120 000 до 250 000 ₽