Вложенные циклы

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

Вложенные циклы — это мощный инструмент в Python, позволяющий выполнять один цикл внутри другого. Это открывает возможности для работы с двумерными структурами данных, такими как таблицы или матрицы, а также для создания сложных узоров и перебора комбинаций.

В этом тренажере мы начнем с самых основ: поймем, как внутренний цикл полностью выполняется на каждой итерации внешнего. Затем мы перейдем к более сложным задачам: научимся генерировать числовые и символьные узоры, обрабатывать вложенные списки (матрицы) и даже управлять поведением циклов с помощью операторов `break`. После прохождения этих заданий вы будете уверенно использовать вложенные циклы для решения широкого круга задач.

Список тем

Основы вложенных циклов

id: 39988_task_nested_1

Давайте создадим наш первый вложенный цикл. Внешний цикл уже написан и перебирает числа от 0 до 1. Ваша задача — дописать внутренний цикл, который также будет перебирать числа от 0 до 1. В результате для каждой итерации внешнего цикла, внутренний должен выполниться полностью.

Заполните пропуски
for i in range(2):
    for j in input1S(input2S):
        print(f"Внешний: {i}, Внутренний: {j}")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Подсчет итераций

id: 39988_task_nested_2

Проанализируйте код. В нем есть счетчик `count`, который увеличивается на каждой итерации внутреннего цикла. Какое итоговое значение будет у переменной `count` после выполнения всех циклов? Введите только число.

Что должно получиться?
count = 0
for i in range(3):
    for j in range(4):
        count += 1
print(count)
Сообщения
Проверить
Показать подсказку

Ошибка в отступе

id: 39988_task_nested_3

В этом коде допущена распространенная ошибка, связанная с отступами во вложенных циклах. Найдите строку с неверным отступом и исправьте ее, чтобы `print` выполнялся внутри самого глубокого цикла.

Найдите ошибку и исправьте
for i in range(2):
    for j in range(2):
    print(f"i={i}, j={j}")
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что выведет код с условием?

id: 39988_task_nested_4

Внимательно проследите за выполнением этого вложенного цикла. Обратите внимание на условие `if i == j`. Какие пары координат будут выведены на экран? Выберите правильный вариант вывода.

Выберите правильный вариант ответа
for i in range(3):
    for j in range(3):
        if i == j:
            print(f"({i}, {j})")
Сообщения
Проверить
Показать подсказку

Соберите код для печати прямоугольника

id: 39988_task_nested_5

Соберите из фрагментов код, который нарисует прямоугольник размером 3x5 из символов '#'. Внешний цикл отвечает за строки, внутренний — за символы в строке. Одна из строк лишняя и не нужна для решения задачи.

Перетяните в правильном порядке строки из одного блока в другой
print('#', end='')
for i in range(3):
print(i)
    print()
    for j in range(5):
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Обработка вложенного списка (матрицы)

id: 39988_task_nested_6

Расставьте строки кода в правильном порядке. Цель — перебрать все элементы во вложенном списке `matrix` и напечатать каждый из них на отдельной строке.

Расставьте строки в правильном порядке
for item in row:
matrix = [[1, 2, 3], [4, 5, 6]]
        print(item)
for row in matrix:
Сообщения
Проверить
Показать подсказку

Рисуем треугольник из банка токенов

id: 39988_task_nested_7

Используя элементы из "банка", соберите код, который нарисует прямоугольный треугольник из звездочек. Количество звездочек в каждой строке должно быть равно номеру строки (начиная с 1).

Нужно правильно расставить в пропуски предложенные варианты
for i in range(5):
    for j in range(input1S):
        print(input2S, end='')
    print()
i + 1
'*'
j
'#'
i
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Вложенный цикл с `break`

id: 39988_task_nested_8

Этот код использует оператор `break` внутри вложенного цикла. `break` прерывает выполнение только того цикла, в котором он находится (в данном случае — внутреннего). Проанализируйте код и определите, какое итоговое значение будет у переменной `total`.

Что должно получиться?
total = 0
for i in range(3):
    for j in range(3):
        if j == 1:
            break
        total += 1
print(total)
Сообщения
Проверить
Показать подсказку

Создание таблицы умножения

id: 39988_task_nested_9

Завершим наш тренажер созданием фрагмента таблицы умножения. Заполните пропуски в коде так, чтобы он корректно выводил таблицу умножения для чисел от 1 до 3. Вам нужно правильно указать переменные и результат их умножения.

Заполните пропуски
for i in range(1, 4):
    for j in range(1, 4):
        print(f"{input1S} * {input2S} = {input3S}")
    print("-----") # Разделитель для наглядности
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру