Не понимаю приоритет кода.

pristnikolas

Новичок
Пользователь
Авг 24, 2024
9
0
1
Python:
1. value == ('first' or 'second')
2. value == 'first' or value == 'second'
Добрый день. Cкажите, пожалуйста, почему код под цифрой 2 правильнее кода под цифрой 1.
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
426
116
43
Потому что ('first' or 'second') оценивается интерпретатором как логическое выражение. Соответственно, оператор or возвращает первое истинное значение - 'first' и присваивается value, вторая строка даже не проверяется. Во втором случае or соединяет два сравнения, каждое из которых проверяется отдельно: сначала проверяется value == 'first', если результат False, тогда проверяется value == 'second'.
Почитай про работу и приоритет логических операторов python
 
  • Мне нравится
Реакции: PYDEV

pristnikolas

Новичок
Пользователь
Авг 24, 2024
9
0
1
Потому что ('first' or 'second') оценивается интерпретатором как логическое выражение. Соответственно, оператор or возвращает первое истинное значение - 'first' и присваивается value, вторая строка даже не проверяется. Во втором случае or соединяет два сравнения, каждое из которых проверяется отдельно: сначала проверяется value == 'first', если результат False, тогда проверяется value == 'second'.
Почитай про работу и приоритет логических оператоС
Спасибо большое.
 

Форум IT Специалистов