Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как влияют скобки в Python? (X or Y) и X or Y

Шамиль Бедретдинов Ученик (105), открыт 1 неделю назад
объясните пожалуйста почему это
 x = 3 
if x == (1 or 3 or 5):
print('yes') # этот код выдает пустой результат
не тоже самое что и это
 x = 3 
if x == 1 or 3 or 5:
print('yes') # в то время как этот работает как надо
4 ответа
Про Мис Профи (527) 1 неделю назад
это программирование, детка
Лиза Хабенская Гуру (3298) 1 неделю назад
В первом случае (1 or 3 or 5) оценивается как 1, а во втором случае x == 1 or 3 or 5 оценивается как True, потому что 3 является истинным значением.
Андрей Щегольский Профи (508) 1 неделю назад
x = 3
if x == (3 or 1 or 5):
print('yes')
здесь напишет yes, так как 3 на первом месте
Kil002 Мастер (2329) 1 неделю назад
Скобки как и везде, помогают построить логические конструкции. В твоём виде просто упрощаем конструкцию и получаем вот такой вид

 x = 3  
if x == (True or True or True):
print('yes') # этот код выдает пустой результат

т.е.
if x == True:
print('yes') # этот код выдает пустой результат

т.е.
if False:
print('yes') # этот код выдает пустой результат

 x = 3  
if x == 1 or True or True:
print('yes') # в то время как этот работает как надо

#т.е.
if False or True or True:
print('yes') # в то время как этот работает как надо

#т.е.
if True:
print('yes') # в то время как этот работает как надо

Предполагаю что в первом варианте ты хотел исполнить вот такую конструкцию
 x = 3  
if x in (1,3,5):
print('yes')
Похожие вопросы