Циклы в Python: как работать с while и for

При написании программ часто возникают ситуации, когда нужно снова и снова использовать определенный фрагмент кода. Циклы в Python упрощают работу программиста: они помогают многократно выполнять блок кода.
Практичний курс від skvot: Артменеджер.
Управляйте творчим процесом.
Если вкратце: циклы нужны для того, чтобы пользоваться созданным элементом, но при этом не писать одну и ту же строку кода несколько раз.
Основные типы циклов
В языке Python существуют 2 основных цикла: while и for. Рассмотрим подробно работу каждого из них.
Цикл while
Цикл while — один из самых распространенных в Python. Он позволяет воспроизводить элемент кода снова и снова, пока заданное условие остается верным (true). Чтобы цикл правильно работал, нужен фрагмент кода, который вы хотите использовать повторно, условие true или false и ключевое слово while .
Главное отличие цикла while от for состоит в том, что while может повторять код бесконечное количество раз, пока выполняется условие его применения.
Ефективний курс від skvot: Режисура відеороликів.
Творча магія кінематографу.
# 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 числа:
Практичний курс від laba: Директор з продажу.
Створюйте та розвивайте успішний відділ продажів.
- Первое число — 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 и наоборот, а также вкладывать циклы одного вида друг в друга.
Інтенсивний курс від laba: Project Manager.
Ведіть проекти до успішного завершення.
Вложенные циклы работают по следующей схеме: программа сначала сталкивается с внешним циклом и начинает выполнять его условия. Затем запускается внутренний вложенный цикл, который выполняется до своего завершения. Программа будет завершать внутренний цикл и возвращаться к началу внешнего до тех пор, пока последовательность не будет завершена или другой оператор не нарушит этот процесс.
Вложенный цикл 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 2do. while
Выражение do. while создаёт цикл, который выполняет указанное выражение до тех пор, пока условие не станет ложным. Условие проверяется после выполнения выражения, то есть выражение выполнится как минимум один раз.
Интерактивный пример
Синтаксис
do выражение while (условие);Выражение, которое выполняется как минимум один раз и выполняется на каждом шаге цикла, пока условие истинно. Выражение может содержать несколько строк, для этого необходимо сгруппировать код в блок ( < . >).
Выражение, которое вычисляется после каждого шага цикла. Если условие истинно, то выражение выполняется ещё раз. Когда условие ложно, выполняется выражение, следующее после do. while .
Примеры
Использование do. while
В примере, цикл do. while выполняется до тех пор, пока i не перестанет быть меньше 5.
HTML
div id="example">div>JavaScript
var result = ""; var i = 0; do i += 1; result += i + " "; > while (i > 0 && i 5); // Несмотря на то, что i == 0, цикл всё равно продолжится, так как начинается без теста document.getElementById("example").innerHTML = result;Результат
Спецификации
| Specification |
|---|
| ECMAScript Language Specification # sec-do-while-statement |
Поддержка в браузерах
BCD tables only load in the browser
Смотрите также
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 7 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
MDN
Support
- Product help
- Report an issue
Our communities
Developers
- Web Technologies
- Learn Web Development
- MDN Plus
- Hacks Blog
- Website Privacy Notice
- Cookies
- Legal
- Community Participation Guidelines
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.
Цикл 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 - простой и эффективный способ изучения программирования.
2023 © ООО "Алгоритмы и практика"
Цикл while в Python
Из этого материала вы узнаете, что такое циклы while, как они могут становиться бесконечными, как использовать инструкцию else в цикле while и как прерывать исполнение цикла.
Управление потоком инструкций: цикл While в Python
Как и другие языки программирования Python включает несколько инструкций для управления потоком. Одна из таких — if else. Еще одна — циклы. Циклы используются в тех случаях, когда нужно повторить блок кода определенное количество раз.
Что такое цикл while в Python?
Цикл while используется в Python для неоднократного исполнения определенной инструкции до тех пор, пока заданное условие остается истинным. Этот цикл позволяет программе перебирать блок кода.
while test_expression: body of while
Сначала программа оценивает условие цикла while. Если оно истинное, начинается цикл, и тело while исполняется. Тело будет исполняться до тех пор, пока условие остается истинным. Если оно становится ложным, программа выходит из цикла и прекращает исполнение тела.
Рассмотрим пример, чтобы лучше понять.
a = 1 while a 10: print('Цикл выполнился', a, 'раз(а)') a = a+1 print('Цикл окончен')
Цикл выполнился 1 раз Цикл выполнился 2 раз Цикл выполнился 3 раз Цикл выполнился 4 раз Цикл выполнился 5 раз Цикл выполнился 6 раз Цикл выполнился 7 раз Цикл выполнился 8 раз Цикл выполнился 9 раз Цикл окончен
Бесконечный цикл while в Python
Бесконечный цикл while — это цикл, в котором условие никогда не становится ложным. Это значит, что тело исполняется снова и снова, а цикл никогда не заканчивается.
Следующий пример — бесконечный цикл:
a = 1 while a==1: b = input('Как тебя зовут?') print('Привет', b, ', Добро пожаловать')
Если запустить этот код, то программа войдет в бесконечный цикл и будет снова и снова спрашивать имена. Цикл не остановится до тех пор, пока не нажать Ctrl + C .
Else в цикле while
В Python с циклами while также можно использовать инструкцию else . В этом случае блок в else исполняется, когда условие цикла становится ложным.
a = 1 while a 5: print('условие верно') a = a + 1 else: print('условие неверно')
Этот пример демонстрирует принцип работы else в цикле while.
условие верно условие верно условие верно условие верно условие неверно
Программа исполняет код цикла while до тех, пока условие истинно, то есть пока значение a меньше 5. Поскольку начальное значение a равно 1, а с каждым циклом оно увеличивается на 1, условие станет ложным, когда программа доберется до четвертой итерации — в этот момент значение a изменится с 4 до 5. Программа проверит условие еще раз, убедится, что оно ложно и исполнит блок else , отобразив «условие неверно».
Прерывания цикла while в Python
В Python есть два ключевых слова, с помощью которых можно преждевременно остановить итерацию цикла.
-
Break — ключевое слово break прерывает цикл и передает управление в конец цикла
a = 1 while a 5: a += 1 if a == 3: break print(a) # 2
a = 1 while a 5: a += 1 if a == 3: continue print(a) # 2, 4, 5