Step 2 (S-14667)

From Stepik Wiki
Revision as of 13:22, 21 September 2021 by Алексей Веретенников (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/3366/step/2


Рассмотрим еще одно решение задачи о выводе квадрата. В этом решении мы будем использовать конструкцию - вложенные циклы. Принцип решения будет прежним, для того чтобы вывести квадрат размером n на n, мы будем n раз выводить строчку из символов звездочка. Однако теперь для того чтобы вывести строчку из n символов мы будем использовать цикл. Посмотрим, как это можно сделать. Почему бы нам просто не написать такую конструкцию для вывода n символов:

S-14667-1.png

Если мы запустим такой цикл, то будет выведено n звездочек, однако они будут выведены по одной в строке. Это происходит потому, что функция print в конце вывода переходит на следующую строку. Это поведение функции print можно изменить, если использовать параметр end этой функции. Мы можем явно указать другую строку, которой мы будем разделять разные вызовы функции print.

S-14667-2.png

В данном случае мы используем пустую строку в качестве разделителя и наши символы звездочка будут выведены слитно без всяких разделителей. Таким образом, цикл выведет одну строку из n звездочек.

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

S-14667-3.png

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

Обратите внимание, что для обозначения вложенности циклов в коде используются отступы.