← Все вопросы
Почему программа не выводит "A", хотя x равен 5?
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): # так короче и чище
...
Ваш ответ
, чтобы ответить на вопрос.