Это немного (очень простой) язык-юрист. Я понимаю, что делает код, и почему, поэтому, пожалуйста, никаких элементарных объяснений.
В выражении in
имеет более высокий приоритет, чем and
. Поэтому, если я пишу
if n in "seq1" and "something":
...
он интерпретируется так же, как
if (n in "seq1") and "something":
...
Однако, in
цикла for
имеет более низкий приоритет, чем and
(на самом деле он должен, в противном случае следующее будет синтаксической ошибкой). Следовательно, если начинающий Python пишет
for n in "seq1" and "something":
...
..., это эквивалентно этому:
for n in ("seq1" and "something"):
...
(который, если "seq1" является правдивым, оценивается как for n in "something"
).
Итак, вопрос: где приоритет ключевого слова in
for-loop указано/документально? Я понимаю, что n in ...
не является выражением в этом контексте (оно не имеет значения), но является частью синтаксиса оператора for
. Тем не менее, я не уверен, как/где указано не выражение.