← Все вопросы

Почему программа не выводит "A", хотя x равен 5?

Задан 2 месяца назад6 просмотров1 ответ
0

x = 5

if x == 5 or 6: print("A") else: print("B") Я ожидал, что выведется "A", потому что x действительно равен 5. Но код работает, и я не понимаю, почему условие x == 5 or 6 вообще работает. Объясните, как Python читает это условие?

1 ответ

0

питон читает это как (x == 5) or 6, а не как x == (5 or 6) и не как «x равен 5 или 6». просто == приоритетнее or. с x=5 получается True or 6 → True → печатает A.

но тут спрятана подстава: это условие истинно ВСЕГДА, при любом x. если x == 5 ложно, остаётся False or 6, а 6 — истинное значение, и весь or опять True. попробуй x = 3 — всё равно выведет A)

как правильно проверить «5 или 6»:

if x == 5 or x == 6:
    ...
if x in (5, 6):   # так короче и чище
    ...

Ваш ответ

, чтобы ответить на вопрос.