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