Операторы цикла
Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается до тела цикла и проверяется до выполнения тела цикла. Как правило, цикл while используется, когда невозможно определить точное значение количества проходов исполнения цикла.
Синтаксис цикла while в простейшем случае выглядит так:
while условие:
блок инструкций
При выполнении цикла while сначала проверяется условие. Если оно ложно, то выполнение цикла прекращается и управление передается на следующую инструкцию после тела цикла while. Если условие истинно, то выполняется инструкция, после чего условие проверяется снова и снова выполняется инструкция. Так продолжается до тех пор, пока условие будет истинно. Как только условие станет ложно, работа цикла завершится и управление передастся следующей инструкции после цикла.
Например, следующий фрагмент программы напечатает на экран квадраты всех целых чисел от 1 до 10. Видно, что цикл while может заменять цикл for . in range(. ):
i = 1
while i print(i)
i += 1
В этом примере переменная i внутри цикла изменяется от 1 до 10. Такая переменная, значение которой меняется с каждым новым проходом цикла, называется счетчиком. Заметим, что после выполнения этого фрагмента значение переменной i будет равно 11, поскольку именно при i==11 условие i
Вот еще один пример использования цикла while для определения количества цифр натурального числа n:
n = int(input())
length = 0
while n > 0:
n //= 10
length += 1
В этом цикле мы отбрасываем по одной цифре числа, начиная с конца, что эквивалентно целочисленному делению на 10 (n //= 10), при этом считаем в переменной length, сколько раз это было сделано.
В языке Питон есть и другой способ решения этой задачи: length = len(str(i)).
Цикл while для начинающих
Цикл while — это конструкция, позволяющая выполнять блок кода до тех, пор пока условие в этой конструкции продолжает быть истиной. Отступы тут будут работать точно так же, как и при использовании оператора if — все, что сдвинуто на четыре пробела относительно ключевого слова while будет считаться телом цикла.
С английского языка while так и переводится — до тех пор, пока.
Для начинающих особенно важно понять все детали работы цикла, поэтому разберем программу, последовательно выводящую цифры от 1 до 3 , построчно:
i = 1while i 3: print(i) i += 1
- Задаем начальное значение переменной i , которая является так называемой переменной-счетчиком ;
- Объявляем условие — пока значение счетчика меньше или равно трем , код ниже будет выполняться. Конец условия обязательно обозначаем двоеточием;
- Выводим значение переменной i (единица, в данном случае). Обратите внимание, что Python определяет начало цикла, видя отступ в четыре пробела;
- Увеличиваем значение переменной i на единицу (которое становится равное двум). Два меньше трех? Значит Python выполнит еще одну итерацию цикла, и так необходимое количество раз, пока условие не перестанет быть истиной (значение переменной i будет меньше либо равно трем).
Нашу программу можно переписать и немного по-другому, используя оператор break
i = 1while True: print(i) if i >= 3: break i += 1
В принципе, все повторения и шаги цикла аналогичны первому варианту. Отличие лишь в том, что для завершения цикла мы используем оператор break , который завершает выполнение цикла. То есть, если переменная-счетчик станет больше либо равна 3 , цикл завершится. Оператор break полезен, если условие в while написать трудно, оно слишком громоздкое, либо перед завершением цикла нужна выполнить какие-либо дополнительные действия
Python с нуля. Освойте с Виртуальным ИИ-помощником!
Цикл while в Python
Цикл while в Python используется для повторения блока кода, пока выражение (условие) истинно, т.е. равно True .
Обычно этот цикл используют, когда заранее неизвестно, сколько раз нужно повторить блок кода.
Синтаксис цикла
while выражение:
Тело while
Сначала цикл while проверяет выражение на истинность. Тело цикла начнет выполняться только в том случае, если выражение = True . После первой итерации цикла выражение снова проверяется на истинность. Этот процесс будет продолжаться до тех пор, пока выражение не станет равно False .
В Python тело цикла while обозначается отступами. Тело цикла начинается с отступа, а заканчивается первой строкой без отступа.
Помните, что Python интерпретирует ненулевые значения как True . None и 0 интерпретируются как False .
Блок-схема цикла
Пример использования цикла
# Программа складывает натуральные # числа от 1 до n # sum = 1+2+3+. +n # Чтобы предложить пользователю ввести число n, # напишите: n = int(input("Введите n: ")) n = 10 # объявляем переменные: сумма и счетчик sum = 0 i = 1 while i
Вывод:
Введите n: 10
Сумма чисел от 1 до n: 55
В приведенной выше программе выражение будет равно True до тех пор, пока счетчик i меньше или равен n . В нашем примере n = 10.
Главное не забывать увеличивать значение счетчика в теле цикла while, иначе получится бесконечный цикл. выражение всегда будет истинным, поскольку i не будет увеличиваться, следовательно, цикл никогда не остановится.
Цикл while с блоком else
Так же, как и с циклами for, с циклами while можно использовать дополнительный блок else .
Блок else начнет выполняться, когда условие цикла while станет равно False .
Цикл while можно принудительно завершить с помощью инструкции break. В таких случаях блок else игнорируется. Иначе говоря, блок else выполняется только в том случае, если внутри тела while не использовался оператор break, а условие цикла while ложно.
Вот пример, который иллюстрирует это.
'''Программа демонстрирует использование конструкции else в комбинации с циклом while''' counter = 0 while counter < 3: print("Внутри цикла while") counter = counter + 1 else: print("Внутри блока else")
Вывод:
Внутри цикла while
Внутри цикла while
Внутри цикла while
Внутри блока else
Мы использовали переменную-счетчик counter , чтобы напечатать сообщение «Внутри цикла while» ровно 3 раза.
На четвертой итерации, т. е. когда counter = 4 условие цикла while counter < 3 становится ложным, т. е. False . Тогда-то и выполняется блок else .
СodeСhick.io - простой и эффективный способ изучения программирования.
2024 © ООО "Алгоритмы и практика"
Циклы в Python: как работать с while и for

При написании программ часто возникают ситуации, когда нужно снова и снова использовать определенный фрагмент кода. Циклы в Python упрощают работу программиста: они помогают многократно выполнять блок кода.
Детям из Мариуполя нужно 120 ноутбуков для обучения - подари старое "железо", пусть оно работает на будущее Украины
Если вкратце: циклы нужны для того, чтобы пользоваться созданным элементом, но при этом не писать одну и ту же строку кода несколько раз.
Основные типы циклов
В языке Python существуют 2 основных цикла: while и for. Рассмотрим подробно работу каждого из них.
Цикл while
Цикл while — один из самых распространенных в Python. Он позволяет воспроизводить элемент кода снова и снова, пока заданное условие остается верным (true). Чтобы цикл правильно работал, нужен фрагмент кода, который вы хотите использовать повторно, условие true или false и ключевое слово while .
Главное отличие цикла while от for состоит в том, что while может повторять код бесконечное количество раз, пока выполняется условие его применения.
Курс Аналітик даних.
Протягом 4 місяців ви вивчите повний набір інструментів для аналізу даних та отримаєте можливість працевлаштування в Laba Group.
# Take user input number = 2 # Condition of the while loop while number < 5 : # Find the mod of 2 if number%2 == 0: print("The number "+str(number)+" is even") else: print("The number "+str(number)+" is odd") # Increment `number` by 1 number = number+1
The number 2 is even The number 3 is odd The number 4 is even
Освоить язык программирования Python вам могут помочь онлайн курсы от наших партнеров Mate Academy и Powercode. Получите качественный уровень знаний от практикующих специалистов.
Цикл for
Цикл for выполняет ту же функцию, что и while — повторяет указанные строки кода. Но в отличие от while, для работы for не требуется никаких условий. For используется для перебора последовательности, например, списка, и работает строго определенное количество раз.
Так выглядит код с использованием цикла for :
languages = ['R', 'Python', 'Scala', 'Java', 'Julia'] for index in range(len(languages)): print('Current language:', languages[index])
Current language: R Current language: Python Current language: Scala Current language: Java Current language: Julia
Функция range
Функция range используется при работе со строками цикла for, а также для создания последовательностей чисел. Рассмотрим на примере кода, как эта функция работает с целыми числами:
for number in range(5,10,2) : print("I am number : "+str(number))
I am number : 5 I am number : 7 I am number : 9
Для работы функции range указываются 2 или 3 числа:
Курс Front-end Basic.
Оволодій навичками розробки веб-інтерфейсів та стань справжнім Front-end розробником! Заробляй від 800$ на початку карʼєри.
- Первое число — start — с него функция начинает отсчет.
- Второе число называется stop и обозначает конец выбранного промежутка чисел. В примере это цифра 10, поэтому функция не может показать число больше 10.
- Третье число называется step : это шаг, который делает функция при переборе чисел. Можно не указывать шаг, и тогда в нашем примере функция покажет все числа от 5 до 10.
Заданный пример начинается с 5, к этому числу прибавляется по 2, пока мы не упремся в потолок функции. Так, получается следующая последовательность чисел:
Range также можно использовать с отрицательными числами и выполнять вычитание. Например:
for i in range(10, -5, -2): print(i)
10 8 6 4 2 0 -2 -4
Вложенные циклы
Циклы while и for можно как использовать по отдельности, так и комбинировать. Можно вложить цикл for внутрь внешнего цикла while и наоборот, а также вкладывать циклы одного вида друг в друга.
Курс Стратегический маркетинг.
Від хаосу до системного маркетингу разом із Тетяною Лукинюк, B2C-директором у Kyivstar, колишнім CMO у Coca-Cola, Mars Ukraine та генеральною директоркою у Red Bull Ukraine.
Вложенные циклы работают по следующей схеме: программа сначала сталкивается с внешним циклом и начинает выполнять его условия. Затем запускается внутренний вложенный цикл, который выполняется до своего завершения. Программа будет завершать внутренний цикл и возвращаться к началу внешнего до тех пор, пока последовательность не будет завершена или другой оператор не нарушит этот процесс.
Вложенный цикл for
Рассмотрим на примере вложенного цикла for , как это работает на практике:
num_list = [1, 2, 3] alpha_list = ['a', 'b', 'c'] for number in num_list: print(number) for letter in alpha_list: print(letter)
1 a b c 2 a b c 3 a b c
По результату выполнения кода видно, что программа завершает первую итерацию внешнего цикла на цифре 1 и затем запускает завершение внутреннего цикла, печатая a, b, c. Как только внутренний цикл завершен, программа возвращается к началу внешнего цикла и печатает цифру 2, а после снова воспроизводит вложенный цикл.
Вложенный цикл while
Вложенный цикл while выглядит так:
i=1 while i1 Outer loop is executed only once 1 Inner loop is executed until to completion 2 Inner loop is executed until to completion 3 Inner loop is executed until to completion 2 Outer loop is executed only once 1 Inner loop is executed until to completion 2 Inner loop is executed until to completion 3 Inner loop is executed until to completion 3 Outer loop is executed only once 1 Inner loop is executed until to completion 2 Inner loop is executed until to completion 3 Inner loop is executed until to completionВыход из цикла
Если вам нужно пропустить какую-то часть цикла, то прервать его выполнение можно с помощью двух операторов: break или continue .
Break позволяет выйти из вложенного цикла сразу во внешний:
for number in range(3) : print("-------------------------------------------") print("I am outer loop iteration "+str(number)) for another_number in range(3): print("****************************") print("I am inner loop iteration "+str(another_number)) break------------------------------------------- I am outer loop iteration 0 **************************** I am inner loop iteration 0 ------------------------------------------- I am outer loop iteration 1 **************************** I am inner loop iteration 0 ------------------------------------------- I am outer loop iteration 2 **************************** I am inner loop iteration 0Если не использовать оператор break в этой части кода, то результат бы выглядел вот так:
------------------------------------------- I am outer loop iteration 0 **************************** I am inner loop iteration 0 **************************** I am inner loop iteration 1 **************************** I am inner loop iteration 2 ------------------------------------------- I am outer loop iteration 1 **************************** I am inner loop iteration 0 **************************** I am inner loop iteration 1 **************************** I am inner loop iteration 2 ------------------------------------------- I am outer loop iteration 2 **************************** I am inner loop iteration 0 **************************** I am inner loop iteration 1 **************************** I am inner loop iteration 2Оператор continue позволяет вернуться ко внешнему циклу, полностью пропуская вложенный цикл. В коде continue ставится в конце внешнего цикла:
for number in range(3) : print("-------------------------------------------") print("I am outer loop iteration "+str(number)) continue for another_number in range(3): print("****************************") print("I am inner loop iteration "+str(another_number)) breakВ результате мы видим, что отсутствует внутренний цикл for , а повторяется только внешний элемент цикла:
------------------------------------------- I am outer loop iteration 0 ------------------------------------------- I am outer loop iteration 1 ------------------------------------------- I am outer loop iteration 2Курс Стратегический маркетинг.
Від хаосу до системного маркетингу разом із Тетяною Лукинюк, B2C-директором у Kyivstar, колишнім CMO у Coca-Cola, Mars Ukraine та генеральною директоркою у Red Bull Ukraine.