Это немного (очень простой) язык-юрист. Я понимаю, что делает код, и почему, поэтому, пожалуйста, никаких элементарных объяснений.
В выражении 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. Тем не менее, я не уверен, как/где указано не выражение.