Вложенные циклы в Python. Применение при решении задач

В предыдущих постах уже много раз была затронута тема использования циклов в программировании.
Это и понятно, циклы – это крайне удобный и широко применяемый инструмент при написании кода и решении поставленных перед разработчиком задач.
Вложенные циклы в Python. - 923608804610
Изображение stokpic с сайта Pixabay
Сегодня мы разберем чуть более сложную на первый взгляд конструкцию.
А именно ситуацию, когда цикл может иметь два и более уровня вложенности.

Для наглядности приведем пример такого использования

Представьте ситуацию, когда мы уже реализовали программу, которая запрашивает у пользователя число и выводит на экран суммы всех чисел от 0 до 9 и введенного пользователем числа:
Вложенные циклы в Python. - 923608805122
Изображение автора
Однако заказчик, глядя на эту картину, решил, что это будет слишком просто для его целей, и потребовал доработать код, чтобы тот выводил суммы не только с введенным числом, но и со всеми другими, в диапазоне от 0 до введенного числа.
То есть у нас появляется две последовательности: от 0 до 9 и от 0 до number, элементы которых нужно просуммировать.
Именно в такой ситуации можно применить вложенный цикл.
Реализуется это вот так:
Вложенные циклы в Python. - 923608805634
Изображение автора
Первым, внешним циклом мы берем первый элемент последовательности от 0 до number и начинаем суммировать его во внутреннем цикле с каждым элементом последовательности от 0 до 9.
Только после окончания этого процесса "пустой" print() в шестой строке кода реализует перенос строки в выводе программы и мы переходим к следующей итерации внешнего цикла и следующему элементу последовательности от 0 до number.
Вложенные циклы во многих случаях являются удобным инструментом, но не стоит забывать о Zen of Python, в котором говорится, что "Flat is better than nested" (Плоское лучше, чем вложенное).
Нужно следить за читаемостью кода, а так же помнить, что степень вложенности – это по сути степень, в которую возводится количество итераций, и, соответственно, количество выполняемых операций в теле цикла.
(Изображение для мобильной версии wal_172619 с сайта Pixabay)

Комментарии

Комментариев нет.