Объясните мне вложенные циклы в python
for i in range(3):
for j in range(3):
print(i, j)
результат:
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2
Объясните мне как работает это код, прям в в деталях и простыми словами прошу!
Ответы (3 шт):
Ох не знаю, но попытаюсь, в первом for i=0 и идёт дальше выполнение цикла, в котором встречается другой for и который будет выполняться, где по условию j переменная будет равняться 0 1 2, соответственно выведется 0 0, 0 1, 0 2. После чего в главном цикле for ничего не следует он выполняется заново с переменной i = 1, где уже дальше опять выполнять другой цикл for с переменной j равной 0 1 2, и выводится на экран 1 0, 1 1, 1 2 и т.д.
Во-первых объясню, что функция range(x) возвращается объект "диапазон", если этой функции подаётся один аргумент, то такой объект будет выглядеть: 0, 1, 2, 3, ..., х - 1 соответственно i и j переменные-счетчики циклов for, которые принимают поочередно значения от 0 до 2.
- Внешний цикл начинает выполнение своего тела и счётчик i = 0, в теле этого цикла содержится ещё один цикл со счётчиком j, который также будет принимать значения от 0 до 2.
- Начинается запуск внутреннего цикла и j = 0. 3. В теле внутреннего цикла выполняется вывод текущих значений переменных-счетчиков . Внешний цикл перейдет на следующую итерацию, только тогда, когда полностью обработает внутренний цикл, т. е. пока j не станет равен 2, потом i = 1 и внутренний цикл опять начинается с 0 до 2 и выводит значения этих счётчиков
for - цикл. Одни и те же действия в нем выполняются по условию, заданному в скобках. В данном случае в скобках указана цифра 3. Это означает, что цикл будет выполнен 3 раза, при этом каждый раз присваивая переменной, указанной после for, значение, заданное по условию.
В цикле for i in range(3) условие по умолчанию означает, что переменной i будет присвоено значение от 0 до 3 (НЕ ВКЛЮЧИТЕЛЬНО). Таким образом, переменная i примет значения: 0, 1, 2.
Однако есть еще один вложенный цикл, для переменной j. Здесь вложенность означает то, что при одном выполнении основного цикла, вложенный будет выполнен 3 раза. То есть, пока i будет равна 0, переменная j успеет принять значения 0, 1 и 2. После чего выводит значение i и получившиеся значения j.
Так проходит первый круг цикла для переменой i. А поскольку всего их 3 и вложенный цикл тоже выполняется 3 раза - на экран будет выведено (3 ∙ 3) = 9 строк, где i принимает 0, 1 и 2 по одному разу, а j по три раза.