×
Россия +7 (495) 139-20-33

Циклы Python: объясняем для начинающих и детей

Россия +7 (495) 139-20-33
Шрифт:
0 7596
Подпишитесь на нас в Telegram

Написание программ, по сути, это реализация придуманного алгоритма – последовательности действий, которые приводят к результату. Когда мы внедряем таким образом задуманный алгоритм, мы можем решить какую-нибудь задачу в реальной жизни или устранить проблему.

Более подробно об этом рассказывают на курсах Python. Тут отметим только, что алгоритм как группа действий может состоять из следующих «кирпичиков»: последовательности (sequencing), выбора (selection), итерации (iteration).

Последовательность – порядок выполнения команд. На определенном этапе алгоритма мы можем заложить принятие решения о том, какое действие должно выполниться сначала, какое – потом, в зависимости от наступивших условий. Это выбор.

Итерация – повторяемость команд. Иногда для достижения цели бывает полезно остановиться и повторить этап алгоритма нужное количество раз. Или повторить сам алгоритм много раз. «Итерирование» обычно реализуется через такой тип конструкций языков программирования, как циклы. Давайте же разберемся, как сделать цикл в «Пайтон».

Курсы Python для детей

Как использовать цикл for?

В «Пайтон» циклов поддерживается всего два: for и while, причем первый считается основным и чаще используется. Обычно for применяют для перебора каких-либо объектов по порядку и обработки каждого из них. Объекты могут быть самыми разными: список, кортеж, строка (это типы данных и групп данных в Python). Строка упоминается не по ошибке. На Питоне поддерживается возможность перебрать ее по буквам как массив, но об этом ниже. Вот общий синтаксис цикла for:

общий синтаксис цикла for

На любом курсе Python для начинающих и детей подробно объясняют каждую часть этой конструкции. Слева переменная, которая у нас будет означать отдельно взятый элемент списка, а справа – название самого списка.

Цикл самостоятельно берет первый по порядку элемент из list_of_elems и кладет его в переменную, которая на схеме называется one_elem. Далее от условия в начале, for переходит к так называемому «телу цикла», где у нас Операция №1, Операция №2.

Тут вы можете производить какие угодно манипуляции с one_elem. На первой итерации (то есть первом проходе цикла) они будут применены к первому элементу list_of_elem. Пройдя тело цикла, for возвращается в условие и присваивает one_elem следующее по порядку значение из list_of_elems. Все повторяется сначала, только применительно к новому элементу списка.

Будьте внимательны, инструкции в теле цикла нужно «отбить» кнопкой Tab, чтобы отступ у них в коде был больше, чем у условия цикла, иначе код не запустится и выдаст ошибку.

Чтобы не ломать голову над неймингом переменных в каждом цикле, которых в любом скрипте, даже во время обучения детей «Питону», может быть немало, придумайте сначала название коллекции данных, обязательно во множественном числе. Переменная слева будет назваться тем же словом, но в единственном числе. Подход логичный, вносящий единообразие. Код легко читается другими людьми. Пример именования переменных по этому методу: «for book in books:». Давайте попробуем цикл for Python на примере списка фруктов. Выведем название каждого с помощью функции print():

fruits = ["apple", "orange", "banana", "strawberry", "watermelon", "pear", "grape-fruit"]

for fruit in fruits:

print(fruit)

Результат:

Код

Функция print() отработала для каждого элемента списка на соответствующей итерации. For устроен так, что по умолчанию останавливается, однажды перебрав весь список.

На «второй заход» он уже не пойдет. Как мы уже говорили, в Python есть возможность перебрать строку или слово как массив букв, которые в него входят. Полезная способность! На курсах программирования задачи на циклы «Пайтон» детям часто дают с таким расчетом, чтобы они вспомнили об этой способности языка.

Для примера давайте обработаем строчку «Программировать весело». Обратите внимание на «синтаксический сахар». Разбираемый набор данных можно указать не только переменной в условии цикла. Запускаем код:

for oneChar in 'Программировать весело':

print one Char

Код

Получаем в консоли каждую букву строки отдельно.

Иногда нам может понадобиться остановить выполнение цикла до того, как он прошел все элементы списка. В этом случае в теле цикла, то есть там, где у нас команды, которые нужно применить, мы можем добавить имеющийся в «Питоне» оператор цикла break и прописать условие, что break срабатывает при достижении нужного нам объекта.

Возьмем список марок автомобилей.

cars = ["Rolls-Royce", "Aston Martin", "Bentley", "Jaguar", "Land Rover", "McLaren"]


Мы как-то давали такое задание, преподавая Python для детей онлайн. Предположим, нам нужно выводить все названия из списка до марки Jaguar.

for car in cars:

print(car)

if car == "Jaguar":

     break

Код

С помощью If проверяем, проходит ли цикл элемент списка «Ягуар», и если проходит – выходим из цикла. Остаток элементов не распечатается. А что будет, если поменяем местами операции в теле цикла?

for car in cars:

if car == "Jaguar":

     break

print(car)


Тогда выведется начало списка, но без «Ягуара», потому что вывод выполняется после вычисления условия и запуска break по условию.

Код

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

animals = ["cat", "dog", "elephant", "lion", "bear", "pigeon"]

for animal in animals:

if animal == "lion":

     continue

print(animal)

Код

С помощью continue и логического оператора «if» мы успешно пропускаем слово «lion». Дойдя до этой итерации, цикл останавливается, не достигая функции print(). Потом возвращается в начало и продолжает работать дальше со следующего элемента списка.

Знакомство с for продолжим функцией range(), с помощью которой в теле цикла for можно повторить нужный блок кода столько, сколько потребуется. К слову, по функции range() можно легко понять, почему язык Python для детей считается более простым, чем многие другие. Чтобы сделать в других языках то же, что здесь делается этой замечательной функцией, требуется гораздо более сложные и трудные для понимания конструкции.

Range() по умолчанию возвращает последовательность чисел начиная от нуля, прибавляя каждый раз «1» к уже достигнутому значению. Останавливается процесс на том числе, который указан в аргументе функции range(), а вернее, до него, потому что функция останавливается за единицу до своего предела.

for number in range(10):

print(number)

Код

Для range() в функции может быть указан второй параметр. Если в аргументах два числа, то первое означает: с какой цифры мы начинаем инкремент (то есть постоянное увеличение на единицу). Вторая цифра указывает верхний предел: когда функция должна остановиться. Но лучше один раз увидеть, как говорит пословица:

for number in range(6, 11):

print(number)

Код

Функция range() часто используется в тандеме с циклом for для того, чтобы «заточить» его под ту или иную задачу, поэтому стоит сказать и о третьем возможном аргументе range(), хотя эту тему редко затрагивают при обучении Пайтону для детей. С его помощью мы можем менять число, на которое увеличиваем каждый раз ту цифру, которой достигли на предыдущей итерации. Шаг инкремента, иными словами. По умолчанию увеличение происходит на единицу, однако третьим аргументом это можно изменить:

for number in range(1, 11, 2):

print(number)

Код

Как видите, прибавляется теперь не единица, а двойка. Если нам нужно перебрать несколько наборов данных в одно и то же время, мы можем применить вложенные циклы for. Речь идет о цикле внутри другого цикла. Внутренний цикл пройдет все свои итерации на первой же итерации внешнего цикла. Когда внешний перейдет на следующий шаг – внутренний опять перебирает все элементы своего списка. И так пока список внешнего цикла не подойдет к концу.

epithets = ["healthy", "tasty", "mature", "big", "cut"] 

vegetables = ["potato", "tomato", "beetroot", "cabbage", "cucumber"]

for epithet in epithets:

for vegetable in vegetables:

     print (epithet, vegetable)


А вот что получилось у нас в консоли разработчика:

Код

Как использовать цикл while?

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

counter = 5

while counter < 15:

print(counter)

counter = counter + 1

код

Будьте осторожны: цикл while легко превращается в бесконечный, что чревато логическими ошибками в программе. Например, если убрать финальное выражение в коде, увеличивающее число в переменной counter на 1, то цикл станет бесконечным, так как условие в начале всегда будет выполняться. Так же, как в цикле for, в while вы можете использовать выражение break для выхода из него в нужный момент.

Знакомимся с Python для детей

курсы Python

Если ваш ребенок изучает программирование, то основ циклов Python из этой статьи будет недостаточно. «Танцевать» в изучении языка программирования начинающему стоит от решения интересных и амбициозных задач. Что бы ребенку было интересно создать? В любом случае понадобится разобраться во многих тонкостях языка. Это можно сделать с помощью бесплатных видеоуроков, самоучителей или на курсах программирования для детей.

Существуют курсы Python для подростков и занятия для детей помладше – с помощью вселенной Minecraft. В любом случае, можно и важно начинать знакомство с языками кодинга уже в школьном возрасте. Учите детей программировать – это полезно и интересно.

Есть о чем рассказать? Тогда присылайте свои материалы Марине Ибушевой


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Как мы увеличили число посетителей сайта на 89 000 человек и индекс качества на 30 единиц за 4 месяца
Никита Ширяев
4
комментария
0
читателей
Полный профиль
Никита Ширяев - Здравствуйте, 1. ТЗ на создание контента, это всего лишь одна из задач, которую мы делаем на проекте. 2. Получаемый текст обязательно проходит проверки на спам. 3. ТЗ на создание контента, это ориентир для авторов. 4. Как раз таки ТЗ помогает не переспамить в тексте, так как мы замеряем показатели ТОПа и ориентируемся на него. И опять приведу Вам скриншот, который подтверждает постоянный рост рейтинга домена. DR имеет сильную прогрессию.
Алексей Романенков (Rookee): как обеспечить проекту видимость в интернете и какими инструментами ее наращивать
Rookee
3
комментария
0
читателей
Полный профиль
Rookee - Добрый день. Взяли на заметку, спасибо. Чтобы не пропустить материал на тему репутационной стратегии от Алексея, следите за Rookee в соцсетях :)
Михаил Сливинский (Яндекс): об алгоритмах качества в поиске, сгенерированных текстах и накрутке ПФ
Анна Макарова
389
комментариев
0
читателей
Полный профиль
Анна Макарова - Владимир, спасибо за комментарий! Если вдруг Михаил сюда не придет, то мнением и мыслями можно напрямую поделиться в ТГ амбассадора. В этой новости оставляли контакт: www.seonews.ru/events/vebmasterskaya-2024-v-yandekse-poyavilsya-ambassador-internet-ploshchadok-v-poiske/
Яндекс Маркет представил собственный бренд велосипедов Raskat
Анна Макарова
389
комментариев
0
читателей
Полный профиль
Анна Макарова - Для городского велосипеда 14-16 кг - вполне ок, можно сказать легкий. Почему нет? )) Понятно, что есть варианты и легче, но они уже скорее всего будут спортивного плана, где каждый грамм имеем значение.
Матвей Северянин дает экспертный отзыв: 788 000 ₽ за месяц на продаже Telegram-каналов – реально
Александр
1
комментарий
0
читателей
Полный профиль
Александр - Согласен с Матвеем. Сам покупаю- продаю Тг каналы на бирже : t.me/birga_prodagi_tg_kanalov - Биржа продажи ТГ каналов | Альянс-А
Контекстная реклама, таргет и SEO вошли в топ-3 каналов продвижения бизнеса в 2023 году
Сергей
1
комментарий
0
читателей
Полный профиль
Сергей - Например, так {censored} - продвижение карточки в органике Google :) Также в Яндекс.Директ есть направление контекста для маркетплейсов.
Как продвигать сайт на Tilda: особенности продвижения и рекомендации специалистов
Konstantin Bulgakov
16
комментариев
0
читателей
Полный профиль
Konstantin Bulgakov - Спасибо за рекомендации, полезно. Но кажется, что тематика в кейсе не самая конкурентная + часть запросов в продвижение брендовые, там и без сео позиции будут в топе.
Зачем вам доверие поисковиков, как его укреплять и привлекать клиентов на сайт
Rookee
3
комментария
0
читателей
Полный профиль
Rookee - Рекомендуем задуматься как можно скорее, потому что даже только что созданный сайт чаще всего нуждается в оптимизации. Битые ссылки, лишние редиректы, низкая скорость загрузки - от всего этого нужно избавляться, чтобы сайт успешно продвигался в поиске и удерживал внимание пользователей. Тарифы на оптимизацию бывают разные, в Rookee базовая техническая оптимизация стоит 13 090, а в рамках Комплексного продвижения может обойтись дешевле или дороже в зависимости от потребностей сайта.
23 сервиса для эффективного экспресс-аудита любого сайта
Илья
3
комментария
0
читателей
Полный профиль
Илья - Lighthouse - работаю пока с ним, не подводит
В какой поисковой системе продвигать финансовый сайт: выводы исследования Sape
Sape
3
комментария
0
читателей
Полный профиль
Sape - Добрый день! Спасибо за вашу обратную связь. Да, действительно, метрика DA не обновляется последние три месяца из-за проблем с поставщиком данных. Мы уже работаем над этим, в ближайшее время исправим. На данный момент для отбора сайтов в системе доступны десятки других метрик, которые обновляются регулярно. Касательно цен — с ними всё в порядке. Если у вас есть вопросы относительно ценообразования, мы готовы на них ответить. Благодарим, что поделились мнением. Мы всегда рады конструктивному диалогу!
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
389
Комментариев
373
Комментариев
262
Комментариев
249
Комментариев
171
Комментариев
156
Комментариев
141
Комментариев
121
Комментариев
120
Комментариев
100
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
77
Комментариев
74
Комментариев
67
Комментариев
64
Комментариев
60
Комментариев
59

Отправьте отзыв!
Отправьте отзыв!