Вопрос Как влияют скобки в python? (x or y) и x or y

Регистрация
24 Май 2013
Сообщения
80
Репутация
-3
Спасибо
0
Монет
0
объясните пожалуйста почему это x = 3

if x == (1 or 3 or 5):

print('yes') # этот код выдает пустой результат не тоже самое что и это x = 3

if x == 1 or 3 or 5:

print('yes') # в то время как этот работает как надо
 
это программирование, детка
 
x = 3
if x == (3 or 1 or 5):
print('yes')
здесь напишет yes, так как 3 на первом месте
 
Скобки как и везде, помогают построить логические конструкции. В твоём виде просто упрощаем конструкцию и получаем вот такой вид

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')
 
В первом случае (1 or 3 or 5) оценивается как 1, а во втором случае x == 1 or 3 or 5 оценивается как True, потому что 3 является истинным значением.
 
Назад
Сверху