Так же как мы можем иметь вложенные условия с несколькими вложенными инструкциями if и else, мы также можем иметь вложенные циклы for и while.
Мы можем перебрать время в течение дня, итерируя по часам, минутам и секундам:
for h in range(24):
for m in range(60):
for s in range(60):
print(f'Time: {h}:{m}:{s}')
Вывод программы будет содержать все возможные отметки времени дня, как показано справа.
Цикл for начинается с h = 0, затем m = 0, затем итерирует по всем секундам от 0 до 59 и печатает время.
Затем программа устанавливает m = 1 и итерирует по всем секундам. Затем она устанавливает m = 2 и повторяет этот процесс, пока не достигнет m = 59. На этом этапе программа завершает второй цикл, и h становится 1. Затем весь процесс итерации по минутам и секундам для h = 1 повторяется снова. Затем h становится 2, потом 3, и цикл продолжается, пока h не достигнет 23, m не достигнет 59, и s не достигнет 59. Это останавливает все три цикла одновременно.
Интерактивная визуальная площадка, демонстрирующая, как приведенный выше код будет работать при запуске. Нажмите «Далее», чтобы увидеть, как Python выполняет программу строка за строкой.
Для простоты предположим, что есть 10 минут и 10 секунд вместо 60.
Мы также можем выводить на экран более сложные объекты с помощью вложенных циклов:
for i in range(10):
for j in range(i + 1):
if j % 2 == 0:
print('*', end='')
else:
print('#', end='')
print()
Для каждой строки i мы используем внутренний цикл по j in range(i + 1). Символ определяется в зависимости от позиции.
Задание
Вдохновившись 2D-играми, вы хотите поэкспериментировать с выводом фигур. Вам нужно вывести треугольник высотой n и шириной n, где для каждого положения символ будет e, если сумма номера строки и столбца чётная, и o, если сумма нечётная.
Обратите внимание, что нумерация строк и столбцов начинается с 1.
Входные данные
Выходные данные
10
e
oe
eoe
oeoe
eoeoe
oeoeoe
eoeoeoe
oeoeoeoe
eoeoeoeoe
oeoeoeoeoe