Когда одну и ту же последовательность действий нужно повторить несколько (а, быть может, много-много) раз, на помощь приходят циклы в Python. Кстати, они прочно связаны со списками в Python — их мы изучали на предыдущем уроке. Итак, перед вами пятый урок по изучению Python. Начинаем!
Циклы в Python: FOR и WHILE
Итак, циклы в Python — это блок команд, который повторяется определённое количество раз. Существует два вида циклов: первый начинается с команды FOR, второй — с команды WHILE. Изучим каждый из них.
Цикл FOR
Как я написал выше, циклы в Python довольно тесно связаны со списками. Хотя бы потому, что с их помощью очень удобно производить множественные преобразования элементов списка. Приведу пример. Допустим, у нас есть список, состоящий из чисел 1, 2, 3, 4, 5. И понадобилось мне вдруг каждое из этих чисел умножить на 3. Вместо того, чтобы проделывать это 5 раз, я воспользуюсь списками и циклами в Python:
1 2 3 4 |
a = [1, 2, 3, 4, 5] for x in a: x = x*3 print(x) |
В этом цикле в переменную x будут по очереди перемещены каждый из элементов списка a, значения умножены на 3, и каждый результат будет выведен на экран при помощи команды print. Обратите внимание: все команды, которые располагаются внутри цикла, имеют отступ в 4 пробела.
Впрочем цикл FOR можно использовать и в том случае, когда нам нужно повторить команду (или команды) несколько раз. Для этого используется команда RANGE. Покажу на примере:
1 2 3 4 |
txt = 'учиться' for i in range(2): txt = txt + ', учиться' print (txt) |
В этом примере у переменной txt значение «учиться». При помощи циклов в Python мы сделали так, чтобы ко значению этой переменной добавилось «, учиться» два раза. Итог — на экран будет выведено сообщение «учиться, учиться, учиться».
Циклы в Python «WHILE»
Теперь я расскажу про второй тип циклов в Python, он называется WHILE. Если переводить с английского, такая команда обозначала бы «пока выполняется условие». Собственно, именно так всё и работает. Цикл будет повторяться до тех пор, пока выполняется определённое нами условие. Приведу пример. Изначальное значение переменной a будет равно 1 и с каждой итерацией (повторением цикла) будет выводиться на экран квадрат значения переменной, а после — добавлять к переменной ещё единицу. И так будет продолжаться до тех пор, пока a будет меньше 10. Взгляните на пример:
1 2 3 4 |
a = 1 while a < 10: print (a * a) a = a + 1 |
Обратите внимание, чтобы в таких случаях у вашей переменной было изначальное значение. Иначе цикл WHILE не сможет понять условие. Вместе с этим следите, чтобы у вас всегда была возможность выхода из цикла, иначе программа будет до бесконечности выполнять одну и ту же команду. В этом случае придётся перезапускать среду разработки. Можете попробовать:
1 2 |
while True: print ('бесконечный цикл') |
В этом случае мы поставили условие «пока истинно», но что истинно — не определили. Запустите программу и наслаждайтесь бесконечным процессом.
Домашнее задание
Сделайте программу, которая загадывает загадку до тех пор, пока пользователь с клавиатуры не введёт правильный ответ. Так как ответ может быть введён как с маленькой, так и с большой буквы, учитывайте оба варианта.
Показать решение
1 2 3 4 5 |
print ('Висит груша, нельзя скушать. Что это такое?') s = '' while s != 'Лампочка' or 'лампочка': s = input('Введите ответ и нажмите Enter: ') print('Вы отгадали загадку!') |
Пишу программу для рассчёта суммы всех целых чисел от 1 до условного n. Я могу использовать цикл while для этой задачи?