Порядок операций: почему ('1' in '111' == True) возвращает False
1,00
р.
р.
В этом вопросе встречается код, который в упрощенном виде можно записать так: >>> '1' in '111' == True False Почему так происходит? Ведь согласно таблице "Operator precedence" и in и == имеют одинаковый приоритет и должно выполняться слева направо. Т.е. логично предположить что данная конструкция равнозначна: >>> ('1' in '111') == True True
Ответ Похоже данная конструкция воспринимается как "chained comparison" наподобие: a < b <= c <br>что эквивалентно a < b and b <= c <br>т.е. '1' in '111' == True будет обрабатываться как: '1' in '111' and '111' == True проверим догадку: >>> '1' in '111' == '111' True