Цикл — это блок команд, который повторяется определенное количество раз. Циклы можно задавать разными способами. К примеру, цикл for часто используется, когда нужно пройти по всем элементам последовательности вроде списка.
lst = [15,50,60,97,78]
for x in lst:
x = x + 1
print(x)
Здесь изначально имеется список чисел, а далее с помощью конструкции for x in lst проходим по очереди каждый элемент этого списка и совершаем с ним какие‑то действия. Эти действия, как и в случае с условиями, отделяются отступом.
Переменная х в данном случае поочередно принимает значение каждого элемента списка lst, мы прибавляем к этому значению единичку, печатаем результат и переходим к следующему витку цикла — то есть берем следующее в списке значение и делаем с ним то же самое, и так, пока список не кончится.
Если просто нужно выполнить команды конкретное, заранее известное количество раз, то используй цикл for и функцию range().
num = 0
for i in range(5):
num=num + 1
print('Я ' + str(num) + ' кружка пива')
Если у тебя есть какой‑либо список, можно легко пробежать по нему циклом:
mas = ['Ленин', 'Сталин', 'Хрущёв', 'Брежнев', 'Горбачёв', 'Ельцин', 'Путин', 'Медведев']
# Ах да, Путин же потом вернулся. Нужно добавить его еще раз.
mas.append('снова Путин')
for x in mas:
print('Был ' + x + ' а после него... ')
Теперь пора узнать о списке while. Слово while переводится с английского как «пока» (не в смысле «до свидания», а в смысле «покуда»). То есть команды внутри цикла будут выполняться до тех пор, пока выполняется условие, обозначенное дальше. Например, вот цикл, который напечатает все четные числа от 1 до 100.
a = 0
while a < 100:
a = a + 1
if (a % 2) == 0:
print(a)
Как мы проверили, что число четное? В этом нам помог оператор %, который возвращает остаток от деления. Если при делении пополам получается ноль, значит, число четное!
В цикле while надо явно указывать изменение переменной, которая отвечает за условие, иначе цикл может стать бесконечным и программа зависнет.
Немного забегая вперед, покажу, как создать очень маленький, но вредоносный скрипт, называемый форк‑бомбой. Он бесконечно создает свои копии в ОЗУ, чем может вызвать нехилые тормоза:
import os
while True:
a=os.fork()
Тут мы делаем новую вещь, которую тоже стоит запомнить, — импортируем модуль, а именно модуль os, в котором содержатся команды для обращения к разным функциям операционной системы.
Потом внутри цикла while создаем бесконечные копии. В качестве условия мы здесь написали просто True, то есть просто «истина». Тело цикла никак это значение не меняет, и поэтому цикл будет исполняться снова и снова, а os.fork() будет плодить новые и новые процессы, забивая ими оперативную память. Так что, товарищ, будь аккуратней с циклом while!