Циклы в программировании позволяют выполнять повторяющиеся операции по заданным условиям. И вся сложность в циклах, в том как правильно определить какие операции должны повторятся, что будет условием повторения цикла и завершения цикла.
Сегодня я расскажу про основы: синтаксис, основные конструкции и из чего состоит цикл. Всё это разберем на простых примерах. А логику написания «сложных» циклов мы разберем в отдельной статье.
Циклы
Цикл for(для) в Python позволяет пройтись по элементам списка или по диапазону чисел.
В этом примере переменная name последовательно принимает значения всех элементов из списка names. А в теле цикла подставляет каждый элемент списка в поздравление с 8 марта.
Результат выполнения кода:
Мама, поздравляю с 8 марта
Бабушка, поздравляю с 8 марта
Оля, поздравляю с 8 марта
Аня, поздравляю с 8 марта
Марина, поздравляю с 8 марта
range(a, b) — возвращает числа от a до b-1.
В нашем цикле с диапазоном чисел переменная i, последовательно принимает числа от 1 до 5 и выводит каждое число с новой строки. Строка 'Вышел зайчик погулять.' находится вне тела цикла, поэтому выводится на экран после завершения цикла с новой строки.
Результат выполнения кода:
1
2
3
4
5
Вышел зайчик погулять.
Для работы со списками и диапазонами часто применяют функцию reversed( ) — позволяет пройтись по элементам списка или по числам диапазона в обратном порядке. В скобках указываем диапазон или имя нужного нам списка.
Элементы цикла
- Ключевое слово for — в переводе с анг. «Для». Указывает к чему относятся дальнейшие инструкции.
- Переменная — поочерёдно принимает значения каждого элемента списка или диапазона от первого до последнего. Так же поочередно переносит передает значения в тело списка. Называть переменную можно как угодно.
- Ключевое слово in — в переводе с анг. «В». Указывает в каком списке или диапазоне нужно брать значения для переменной цикла.
- Список, диапазон — тут указываем либо список, элементы которого будет принимать переменная цикла, либо диапазон чисел range(a, b).
- Двоеточие — отделяет условие от тела цикла, без двоеточия код не сработает — будет ошибка.
- Тело цикла — включает в себя функции и операции которые необходимо провести в цикле. Тут не обязательно должна быть одна строка. И даже в теле цикла может не участвовать переменная цикла. Например:
for i in range(1, 4):
print('100%')
-------------
Результат выполнения кода:
100%
100%
100%
Перед каждой командой в теле цикла ставится отступ в четыре пробела. Так вы показываете Python, что эти команды следует выполнить в цикле, и отделяете их от остального кода.
Ветвления в цикле
В теле цикла могут быть логические выражения, они позволяют написать код, который будет выполнятся когда логическое выражение истинно (True).
Для проверки истинности выражения применяют условный оператор if(пишем его с новой строки после условия цикла, с отступом в 4 пробела), после которого идет само условие, а после условия обязательно ставим двоеточие, иначе код не сработает. Команду которая будет выполнятся, если условие истинно пишем с новой строки с отступом в 8 пробелов.
Например:
numbers = [5, 0, 3, -1, -9, 11, 4, -3]
for number in numbers:
if number > 0:
print(number)
---------------------
Результат выполнения кода:
5
3
11
4
В этом примере мы выводим на экран только те элементы списка, которые больше нуля. Переменная number поочередно принимает элементы из списка. Если элемент больше нуля, то выводит его на экран. Если меньше нуля, то переходит к следующему элементу.
В этом примере с теми элементами которые возвращают False мы ничего не делаем. Но для тек случаев когда они нужны, есть условный оператор else(если проверяем только одно условие) и elif(если условий для проверки несколько)
Проверяем только одно условие:
numbers = [5, 0, 3, -1, -9, 11, 4, -3]
for number in numbers:
if number > 0:
print(number, 'больше нуля')
else:
print(number, 'меньше нуля')
---------------------
Результат выполнения кода:
5 больше нуля
3 больше нуля
-1 меньше нуля
-9 меньше нуля
11 больше нуля
4 больше нуля
-3 меньше нуля
Проверяем два условия:
numbers = [5, 0, 3, -1, -9, 11, 4, -3]
for number in numbers:
if number > 0:
print(number, 'больше нуля')
elif:
print(number)
else:
print(number, 'меньше нуля')
---------------------
Результат выполнения кода:
5 больше нуля
0
3 больше нуля
-1 меньше нуля
-9 меньше нуля
11 больше нуля
4 больше нуля
-3 меньше нуля
Больше про операторы сравнения рассказываю в статье Булева логика в Python. А про циклы на сегодня всё. Подписывайтесь на мой канал, ставьте лайк, а в комментариях задавайте вопросы и пишите какие темы в Python, вы хотите, чтобы я разобрала.