Я собираюсь определенно согласиться с ответом @Josh и @ g.d.d.c здесь, но есть еще кое-что, что нужно объяснить, чтобы понять конструкцию цикла for
и какова ее мощь на самом деле. Но чтобы получить это, мне нужно немного поговорить о том, что такое итеративный объект.
Циклы Python for
не работают так же, как в другом языке, например, в Java. Циклы for
здесь требуют чего-то, что они могут повторить . Это означает три типа данных (в общем): списки, кортежи и словари. Все три из них имеют значения, которые могут быть повторены, и, таким образом, цикл for
будет хорошо работать с ними.
Функция range(a, b, s)
создаст список значений в диапазоне [a, b), опционально с пропуском значения s. Поскольку список является итеративным, мы можем использовать его с оператором for
.
Когда вы вкладываете for
операторы, вы выполняете вложенный цикл . Самый дальний оператор for
будет работать чаще всего. Вы можете сравнить вложенный цикл с аналоговым таймером - секундная стрелка - самая внутренняя for
, минутная стрелка - уровень выше этого, а часовая стрелка - уровень выше этого.
Теперь перейдем к этому примеру. Во внешнем цикле for
мы привязываем каждое значение, полученное из итеративного списка, к переменной - в данном случае n
. Когда мы начинаем цикл, n == 2
. Мы подходим к внутреннему циклу for
и замечаем, что привязываем переменную x
к списку [2, 2)
, который будет пустым - наличие одинаковых начальной и конечной точки в range()
ничего не возвращает. Поэтому в первый раз мы пропустили внутренний цикл.
Как только мы закончим с внутренней петлей уровня, мы вернемся и повторим внешней петли. Итак, n == 3
. Мы приходим во внутренний цикл и привязываем x
к первому значению в итерируемом диапазоне [2, 3)
, которое будет 2
. Затем мы выполняем внутренние операции, как ожидается от оператора if
.
Когда мы наконец доберемся до точки, когда n == 9
(максимальное значение; помните, n
никогда не может быть равно 10 в этом примере из-за ограничений диапазона), x
будет привязано к первому значению итерируемого диапазон [2, 9)
. Итак, x
начнется с 2, затем перейдет к 3 и т. Д.
Если вы хотите узнать больше о том, как работают циклы for
, то я рекомендую изучить понимание списков и даже сослаться на Погрузиться в раздел Python по спискам .