Как работает цикл while: Интерактивный учебник языка Python

Как работает цикл while в python, примеры ~ PythonRu

Из этого материала вы узнаете, что такое циклы 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 есть два ключевых слова, с помощью которых можно преждевременно остановить итерацию цикла.

  1. Break — ключевое слово break прерывает цикл и передает управление в конец цикла
    a = 1
    while a < 5:
        a += 1
        if a == 3:
    	break
        print(a) # 2
    
  2. Continue
    — ключевое слово continue прерывает текущую итерацию и передает управление в начало цикла, после чего условие снова проверяется. Если оно истинно, исполняется следующая итерация.
a = 1
while a < 5:
    a += 1
    if a == 3:
	continue
    print(a)  # 2, 4, 5

Цикл while в Python — CodeChick

Циклы в программировании нужны, чтобы повторять один и тот же блок кода определенное количество раз. В этой статье вы научитесь создавать и использовать цикл while в Python.

Цикл while

Цикл 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:
    sum = sum + i
    i = i+1  # обновляем счетчик

# выводим сумму на экран
print("Сумма чисел от 1 до n:", sum)

Вывод:

Введите 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.

Python while Loop

Циклы используются в программировании для повторения определенного блока кода. В этой статье вы научитесь создавать цикл while в Python.

Видео: цикл while Python

Что такое цикл while в Python?

Цикл while в Python используется для перебора блока кода до тех пор, пока тестовое выражение (условие) истинно.

Обычно мы используем этот цикл, когда заранее не знаем, сколько раз нужно выполнить итерацию.

Синтаксис цикла while в Python

в то время как test_expression:
    Тело while 

В цикле while сначала проверяется тестовое выражение.

Тело цикла вводится только в том случае, если test_expression оценивается как True . После одной итерации тестовое выражение снова проверяется. Этот процесс продолжается до тех пор, пока test_expression не будет оценено как False .

В Python тело цикла while определяется через отступ.

Тело начинается с отступа, а первая строка без отступа отмечает конец.

Python интерпретирует любое ненулевое значение как True . Нет и 0 интерпретируются как False .

Блок-схема цикла while

Блок-схема цикла while в Python

Пример: Python while Loop

 # Программа для добавления естественного
# числа до
# сумма = 1+2+3+...+n
# Чтобы получить ввод от пользователя,
# n = int(input("Введите n: "))
п = 10
# инициализируем сумму и счетчик
сумма = 0
я = 1
пока я <= п:
    сумма = сумма + я
    i = i+1 # счетчик обновлений
# вывести сумму
print("Сумма", сумма) 

Когда вы запустите программу, вывод будет:

  Введите число: 10
Сумма равна 55  

. В приведенной выше программе проверочное выражение будет True , если наша переменная-счетчик i меньше или равна n (10 в нашей программе).

Нам нужно увеличить значение переменной счетчика в теле цикла. Это очень важно (и чаще всего забывается). Невыполнение этого требования приведет к бесконечному циклу (бесконечному циклу).

Наконец, отображается результат.


Цикл While с else

То же, что и для циклов for, циклы while также могут иметь необязательный блок else .

Часть else выполняется, если условие в цикле while оценивается как False .

Цикл while можно прервать с помощью оператора break. В таких случаях часть else игнорируется. Следовательно, часть

else цикла while выполняется, если разрыва не происходит и условие ложно.

Вот пример, иллюстрирующий это.

 '''Пример для иллюстрации
использование оператора else
с циклом while'''
счетчик = 0
пока счетчик < 3:
    print("Внутренний цикл")
    счетчик = счетчик + 1
еще:
    print("Внутри еще") 

Вывод

  Внутренняя петля
Внутренняя петля
Внутренняя петля
Внутри else  

Здесь мы используем переменную-счетчик для вывода строки Внутри цикла три раза.

На четвертой итерации условие в , а становится False . Следовательно, часть else выполняется.

Содержание

Как работают циклы Do-While в компьютерном программировании

Когда вы учитесь программировать, понимание основных строительных блоков является ключом к раннему успеху. Вы изучите сложные темы позже, но если вы не понимаете типы переменных, циклы и функции, вам будет трудно продвинуться далеко.

Большинство новых программистов узнают о операторах if-else , while циклы и для циклов в ближайшее время. Но один из типов цикла, который вы, возможно, не понимаете, — это цикл do-while . Давайте обсудим, как работает этот цикл, когда вы захотите его использовать, и рассмотрим несколько примеров.

Основы

Цикл do-while выполняет блок кода хотя бы один раз, проверяет, верно ли условие, а затем продолжает выполнять код внутри в зависимости от условия. Давайте посмотрим на простой пример псевдокода (поскольку они помогают вам учиться!):

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

В этом фрагменте кода строки внутри скобок от до всегда выполняются хотя бы один раз. Это означает, что x может быть любым значением в начале цикла.

Если x равно 1 при запуске цикла, он будет повторяться до тех пор, пока x не удовлетворяет условию рядом с , а . Таким образом, он будет выполняться в общей сложности 5 раз. Когда х не меньше 5, цикл завершается и продолжается на код после него. Этот вывод будет выглядеть следующим образом:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

И наоборот, если x было равно 20 при запуске этого цикла, он запустится только один раз. Таким образом, вы увидите один выходной оператор, x увеличивается до 21, и цикл завершится, потому что 21 не меньше 5.

Его вывод будет:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Контраст с циклами while и for

Чем цикл do-while отличается от других циклов? Наиболее важным отличием является то, что циклы do-while проверяют условие после выполнения блока кода, в то время как другие циклы проверяют условие до выполнения кода внутри.

Рассмотрим этот базовый псевдокод в цикле для сравнения:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Здесь для x установлено значение 10, а цикл while перед запуском проверяет, что x меньше 5. Из-за этого код внутри никогда не запускается. Применение той же логики к циклу do-while дает нам что-то вроде этого:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Этот цикл выводит текст один раз, увеличивается на x , затем продолжается.

Обратите внимание, что вы можете воссоздать функциональность do-while с дополнительным оператором перед циклом while , например:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Однако это неуклюже, и нет причин делать это, когда существуют циклы do-while.

Для циклов

Циклы

Do-while имеют такое же различие с для циклов . Цикл для определяет переменную, указывает, как долго должен выполняться цикл, и задает поведение в конце каждой итерации.

Вот простой цикл для для сравнения:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Это подчеркивает хороший контраст между циклами do-while и for — вы точно знаете, сколько раз будет выполняться цикл for , потому что вы установили условия в начале. Если вы измените приведенный выше код в цикл do-while следующим образом:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Вы можете столкнуться с проблемой при выполнении цикла. Если вы не инициализировали i где-то еще, вы не знаете, каким будет его значение, когда запустится часть do , а она запустится хотя бы один раз. Если бы i было 500, когда этот цикл выполнялся, вывод здесь был бы неточным.

Итого:

  • Цикл do-while полезен, когда вы хотите выполнить команду хотя бы один раз и постоянно, пока условие не станет ложным.
  • Цикл while позволяет повторять блок кода до тех пор, пока выполняется условие, и останавливаться, как только условие перестает быть истинным.
  • Параметр для цикла позволяет точно указать, сколько раз должен выполняться цикл, задав собственные параметры.

Выход из цикла Do-While

Конечно, у вас должно быть условие выхода для цикла do-while, как и для любого другого. Если нет, вы можете получить бесконечный цикл. Рассмотрим следующий фрагмент:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Если вы больше нигде в коде не увеличите x , то этот цикл будет работать вечно. Теперь иногда бесконечные циклы полезны, потому что программист настраивает код так, чтобы выйти из цикла в другом месте. Но чаще всего начинающие программисты случайно сталкиваются с бесконечными циклами.

Вот пример подходящего бесконечного цикла. Допустим, вы разрабатываете игру, в которой пользователь бросает кубик и должен получить 6, чтобы покинуть домашнюю базу. Вы хотите продолжать бросать кубик, пока не выпадет 6, и вам, очевидно, придется бросить хотя бы один раз. Таким образом, вы можете использовать этот код:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Условие while (true) означает, что этот цикл будет работать вечно, чего мы и хотим, потому что пользователь должен бросать кубик, пока не получит 6. Без оператора break цикл застрянет. Но как только пользователь выбрасывает 6, утверждение , если становится верным, и последовательность выходит из цикла и переходит к тому, что после.

Вам не нужно использовать оператор break, если вы этого не хотите. На самом деле, вероятно, лучше избегать операторов break, если это возможно. Они усложняют сопровождение вашего кода, а завершение по условию легче отслеживать. Таким образом, модифицированный код ниже достигает той же цели:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Плохая бесконечная петля

Бесконечный цикл, из которого вы планируете выйти, в порядке. Но иногда вы случайно создадите бесконечный цикл, как в примере ниже:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Может показаться, что x увеличивается на 2 в каждом цикле и повторяется до тех пор, пока x не станет меньше 10, но присмотритесь. Поскольку цикл устанавливает x равно 1 при каждом запуске, это бесконечный цикл. Обратите внимание, что x = 1 и x = x + 2 означает, что x всегда равно 3 в конце блока, независимо от того, сколько раз это выполняется, то есть x никогда не будет меньше 10.

Следите за операторами внутри вашего цикла, которые непреднамеренно изменяют переменную каждый раз, когда он запускается, чтобы избежать подобных ситуаций.

Реальные примеры

Выше мы обсудили некоторые гипотетические примеры, но давайте кратко рассмотрим несколько полезных реальных примеров циклов do-while.

Если бы вы создавали цикл для чтения данных из файла до тех пор, пока они не достигнут конца, вы бы использовали цикл do-while. Очевидно, что вам нужно взять хотя бы один символ, если вы планируете читать из файла, поэтому вы можете использовать цикл do-while, подобный этому (спасибо пользователю Stack Exchange Стивену Бернапу за этот пример):

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Без do-while вам пришлось бы использовать немного более уродливое решение:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

Другой пример связан с получением ввода от пользователя. Допустим, вы пишете программу, которая просит пользователя ввести положительное число. Используя do-while, вы можете убедиться, что их ввод правильный:

 Указанный язык: clike не существует' 
 Генерация кода не удалась!! 
'

В этом цикле пользователь видит приглашение ввести число и вводит значение один раз. Если они вводят отрицательное число, цикл запускается снова, и им предлагается ввести положительное число до тех пор, пока они не согласятся. Другие циклы просто не имеют смысла для этого типа действий.

Готовы к использованию циклов Do-While?

Мы провели обзор циклов do-while, включая их основные принципы, способы их наилучшего использования и их сравнение с другими циклами. Если вы ничего не помните из этой статьи, знайте, что циклы do-while предназначены для , когда вам нужно запустить что-то хотя бы один раз, но вы не знаете, сколько раз вам это понадобится, прежде чем инициировать цикл . .

Подумайте о подобных ситуациях в своих программах, и вы легко найдете места, где подходят циклы do-while.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *