На занятии изучается алгоритм работы с циклом с предусловием While в Паскале, рассматривается пример возведения в степень
Содержание:
- While в Паскале — цикл с предусловием
- Вложенные циклы в Паскале
- Произведение в Паскале
- Программа возведения в степень числа в Паскале
Пример: Определить количество цифр в введенном целом числе, не превышающем 2000000.
Алгоритм: Отделяем и удаляем последовательно последнюю цифру, наращивая счетчик.
n | счетчик |
246 | 0 |
24 | 1 |
2 | 2 |
0 | 3 |
В чем сложность?: Заранее не определено и неизвестно, сколько цифр нужно убрать, т.е. сколько шагов необходимо сделать.
Как выполнить: Надо перестать отделять цифры, когда n = 0, т.е. надо выполнять пока n > 0
Блок-схема решения:
Блок-схема решения
Решение примера на Паскале:
Цикл while
в Паскале применяется для создания повторений с неизвестным заранее их числом. Повторения (итерации) будут осуществляться, пока истинно некоторое условие.
Блок-схема, соответствующая циклу while в Паскале:
while условие do {Пока условие истинно выполняется оператор} оператор;
- Здесь оператор, стоящий после служебного слова
do
, образует тело цикла и будет выполняться, пока значение"условия"
равноtrue
(истина). - Если операторов должно быть несколько, тогда необходимо применять составной оператор.
- Условие пересчитывается каждый раз при входе в цикл.
- Непосредственно
условием
циклаwhile
может быть переменная или логическое выражение. - Операторы тела цикла
while
выполнятся только в том случае, если условие будет истинно, если условие ложно — они игнорируются, и программа продолжается с тех операторов, которые стоят уже после конструкции. Таким образом, это существенное отличие цикла с предусловием от цикла с постусловием.
Рассмотрим использование цикла while
в Паскале на решенном примере:
Пример: Печатать «ноль» указанное количество раз
Показать решение:
Pascal | PascalABC.NET | ||||
|
|
Задача 3. Ввести целое число и найти сумму его цифр.
Пример:
Введите целое число: 1234 Сумма цифр числа 1234 равна 10.
[Название файла: L3task3.pas
]
Задача 4. Вычислять с использованием цикла while квадратные корни из чисел 900, 893, 886, 879 и т.д. до тех пор, пока это можно делать.
[Название файла: L3task4.pas
]
Детальный разбор работы цикла While в Паскале рассмотрен в видеоуроке:
Пример: найти сумму всех элементов последовательности:
которые по модулю больше 0,001:
Алгоритм:
Блок-схема решения:
Блок-схема решения
Решение на Паскале:
Решение на Паскале
Задача 5: Вычислить сумму элементов следующей последовательности с точностью 0,001:
Результат: S = 1.157
[Название файла: L3task5.pas
]
Вложенные циклы в Паскале
Существует возможность использования вложенных циклов в Паскале, когда в теле одного цикла вместо оператора стоит другой цикл.
Важно: Главным обстоятельством во вложенных циклах является использование разных переменных для счетчиков внутреннего и внешнего циклов
Рассмотрим пример:
Пример: Вывести таблицу умножения, используя вложенные циклы в паскале.
Показать решение:
Pascal | PascalABC.NET | ||||
|
|
Произведение в Паскале
Точно также, как существует сумматор для сложения, для умножения в паскале тоже существует специальная конструкция:
Произведение вычисляется по рекуррентному выражению:
P=P*Y,
где P – промежуточные произведения
Y — сомножители
Рассмотрим пример вычисления факториала числа в Паскале с использованием цикла while
.
Пример цикла While в Паскале для вычисления факториала 10! (10!=1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10)
1 2 3 4 5 6 7 8 9 10 11 12 |
var fact, n : integer; begin fact := 1; {начальное значение факториала =0! } n := 1; {начальное значение для условия } while n<=10 do {условие } begin {начало тела конструкции с составным оператором } fact := fact*n; {вычисление факториала n! } n := n + 1 {n должно меняться в теле конструкции} end; {конец тела цикла } writeln(’10!= ’,fact); {вывод результата расчета } end. |
Здесь необходимо обратить внимание на то, что присваивание n := 1
стоит до цикла, если этого не сделать, то условие будет работать некорректно, так как переменная n
будет пуста.
Программа возведения в степень числа в Паскале
Для начала уточним, что есть формула вычисления степени на Паскале. Но мы не будем ее использовать, а разберем алгоритм решения задачи возведения в степень.
Для того чтобы возвести число в степень, его надо умножить само на себя ровно столько раз, чему равен показатель степени.
Таким образом, возведение числа n
в степень d
можно выразить так:
nd = n1 * n2 * n3 * … * nd
, где нижние индексы просто указывают очередное по счету число n
.
Еще необходимо учесть следующее:
- число в нулевой степени равняется
1
- если показатель степени отрицателен, т.е.
d < 0
, то задача решается по формуле:
nd = 1 / (n1 * n2 * n3 * … * nd)
Т.е., решая программу на Паскале, учитываем:
- в программе на языке Паскаль количество итераций (повторений) цикла
while
должно быть равно показателю степени числа по модулю; - если показатель степени — отрицательное число, то нужно впоследствии единицу разделить на результат.
Задача 6. Вычислить в Паскале степень числа, используя цикл while.
[Название файла: L3task6.pas
]
Задача 7. Дана последовательность вещественных чисел, признак завершения которой — число 0 (оно не считается элементом последовательности). Найти сумму всех положительных элементов этой последовательности.
Пример результата:
Введите член последовательности 4 Введите член последовательности -1 Введите член последовательности 5 Введите член последовательности 7 Введите член последовательности 0 Сумма положительных чисел = 16
[Название файла: L3task7.pas
]
Download Article
Download Article
A while loop repeats a set of instructions while a certain condition is true. Unlike a for loop, which requires you to define how many times you want to loop through something, the statements in a while loop run over and over again until the condition becomes false. This wikiHow article will show you the proper syntax for a while loop in C/C++, Python, Java, and Ruby.
-
1
Learn how a while loop works. No matter which language you’re using, a while loop always runs like this:
- The program executes.
- A while loop is found in the program.
- The condition specified in the while loop is evaluated to check whether it is true or false.
- If the condition is true, the statements in the loop are executed.
- The condition is checked again once the statements in the loop have run.
- If the condition remains true, the loop will run again.
- The process repeats until the condition becomes false.
- When the condition becomes false, the statements in the loop stop running.
- When loop ends, the next lines in the program will run.
-
2
See the syntax for while loops in different languages. While a while loop works the same in all programming language, the syntax varies.
-
C and C++
while(condition) { statement(s); }
-
Java
while (condition) { statement(s) }
-
Python
while condition: statement(s)
-
Ruby
while condition statement(s) end
Advertisement
-
C and C++
-
3
Identify your variable(s). For example, if your variable i is the value that should control how long the loop lasts, define i as a whole number or similar data type.
-
4
Start the while loop by writing a while command. Use the syntax examples above to ensure that you’re entering the command in the proper format for the language you’re coding in. Replace condition with the condition to check for the variable you’re evaluating.
- You can specify more than one conditional expression in a while loop.[1]
- You can specify more than one conditional expression in a while loop.[1]
-
5
Enter the code that should run inside the while loop. Replace statement(s) in the code with the code that should run if the condition is true. As long as the conditions are true, the statements will run repeatedly. Once the condition tests false, the while loop will end on its own.[2]
-
6
Add an else clause in Python (optional). If you’re coding in Python, you can opt to add additional statements that can run as soon as the loop ends.[3]
This can be helpful if you want to print a message of success (or failure) to the screen after the commands are run. In this example, we’ll use an else statement to print «All done» to the screen after the loop finishes.i = 0 while i > 0: i -= 1 print(i) else: print("All done")
Advertisement
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
-
Part of writing an effective while loop involves anticipating how your code function will act. This kind of prediction can be the difference between a smoothly functioning piece of code and a failed attempt.
-
A while loop can become excessively broad or global within a program. Looking at each line of code helps the programmer to dial back into the most basic elements and uses of the while loop.
Thanks for submitting a tip for review!
Advertisement
Video
References
About This Article
Article SummaryX
1. Identify the variables.
2. Write the while command and state the condition.
3. Enter the statements that should run until the condition is no longer true.
4. Choose to add an else statement if you’re using Python.
Did this summary help you?
Thanks to all authors for creating a page that has been read 55,005 times.
Is this article up to date?
Назад в начало
Цикл while («пока») позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается после ключевого слова while и проверяется до выполнения тела цикла.
Цикл while используется, когда невозможно определить точное количество повторений цикла.
i = 0 # объявление переменной i для условия цикла
while i < 5: # ключевое слово ‘while’ и условие выполнение цикла
# тело цикла
print(i) # вывод значения переменной i
i += 1 # увеличение значения переменной i на единицу
# Вывод:
>> 0
>> 1
>> 2
>> 3
>> 4
Цикл while может быть бесконечным.
i = 0
while True: # условие всегда истинно
print(i)
i += 1
# Вывод:
>> 0
>> 1
>> 2
>> 3
>> 4
…
>> 999
…
# Это может продолжаться долго…
Выполнение цикла можно прерывать с помощью оператора break.
i = 0
while 1: # условие всегда истинно
if i == 3: # если i равно 3, то вызываем оператор break
break # оператор break прерывает выполнение цикла
print(i)
i += 1
# Вывод:
>> 0
>> 1
>> 2
Оператор continue начинает повторение цикла заново.
i = 0
while i < 5:
i += 1 #
if i % 2 == 1: # если значение i нечетно, то вызываем оператор continue
continue # оператор continue начинает повторение цикла заново
# в случае вызова continue код ниже не выполнится
print(i)
# Вывод:
>> 0
>> 2
>> 4
Как и для цикла for, для цикла while мы можем записать конструкцию else.
x = 1
while x < 5:
print(x)
x += 1
else:
print(‘Цикл завершен’)
# Вывод:
>> 1
>> 2
>> 3
>> 4
>> Цикл завершен
Примеры
1. Числа от A до B
# Пользователь вводит числа A и B (A > B). Выведите все числа от A до B включительно.
A = int(input(‘Введите число: ‘))
B = int(input(‘Введите число: ‘))
while A >= B:
print(A)
A -= 1
# Ввод:
>> 12
>> 7
# Вывод:
>> 12
>> 11
>> 10
>> 9
>> 8
>> 7
# Ввод:
>> 5
>> 2
# Вывод:
>> 5
>> 4
>> 3
>> 2
2. Много чисел
# Пользователь вводит числа до тех пор, пока не введет 0.
# Выведите количество введенных чисел (0 считать не нужно).
n = int(input(‘Введите число: ‘))
counter = 0 # счетчик введенных чисел
while n: # n неявно преобразуется в тип bool
# если n равно 0, то выполнение цикла прервется
n = int(input(‘Введите число: ‘)) # вводим очередное число
counter += 1 # увеличиваем счетчик
print(f‘Количество чисел {counter}‘)
# Ввод:
>> 1
>> 10
>> 100
>> 1000
>> 0
# Вывод:
>> Количество чисел 4
3. Наименьший делитель
# Пользователь вводит число N (N > 1). Выведите его наименьший делитель.
N = int(input(‘Введите число: ‘))
div = 2
while N % div != 0:
div += 1
print(f‘Наименьший делитель равен {div}‘)
# Ввод:
>> 10
# Вывод:
>> Наименьший делитель равен 2
# Ввод:
>> 15
# Вывод:
>> Наименьший делитель равен 3
# Ввод:
>> 17
# Вывод:
>> Наименьший делитель равен 17
Решение задач
1. Четные от A до B
Пользователь вводит числа A и B (A > B). Выведите четные числа от A до B включительно.
# Ввод:
>> 10
>> 1
# Вывод:
>> 10
>> 8
>> 6
>> 4
>> 2
2. От A до B на три
Пользователь вводит числа A и B (A < B, A меньше B). Выведите числа от A до B включительно, которые делятся на три.
# Ввод:
>> 1
>> 15
# Вывод:
>> 3
>> 6
>> 9
>> 12
>> 15
3. Сумма чисел
Пользователь вводит числа до тех пор, пока не введет 0. Выведите сумму введенных чисел (0 считать не нужно).
# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0
# Вывод:
>> Сумма равна: 39
4. Максимум
Пользователь вводит числа до тех пор, пока не введет 0. Выведите максимальное введенное число (0 считать не нужно).
# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0
# Вывод:
>> Максимум равен: 15
5. Минимум
Пользователь вводит числа до тех пор, пока не введет 0. Выведите минимальное введенное число (0 считать не нужно).
# Ввод:
>> 1
>> 15
>> 10
>> 11
>> 2
>> 0 # 0 не входит в последовательность
# Вывод:
>> Минимум равен: 1
6. Факториал
Пользователь вводит число N. Выведите факториал число N. Факториал числа N — это произведение всех чисел от 1 до N включительно. Например, факториал числа 5 равен 120.
# Ввод:
>> 5
# Вывод:
>> 120
# Ввод:
>> 3
# Вывод:
>> 6
# Ввод:
>> 4
# Вывод:
>> 24
7. Фибоначчи (финальный босс)
Пользователь вводит число N. Выведите N-ное по счету число Фибоначчи. Последовательность чисел Фибоначчи рассчитывается по такой формуле: F(1) = 1, F(2) = 1, F(K) = F(K-2) + F(K-1). Идея такая: каждое следующее число равно сумму двух предыдущих.
Первые 10 чисел последовательности: 1 1 2 3 5 8 13 21 34 55 …
# Ввод:
>> 5
# Вывод:
>> 5
# Ввод:
>> 10
# Вывод:
>> 55
# Ввод:
>> 8
# Вывод:
>> 21
В прошлой статье мы изучали цикл for – он
используется в тех случаях, когда заранее известно количество итераций,
совершаемых в цикле. Число исполнений цикла for определяется функцией range()
или размером коллекции. Если диапазон значений не
известен заранее, необходимо использовать другой цикл – while: он выполняется, пока не наступит
определенное событие (или не выполнится необходимое условие). По этой причине
цикл while называют условным. Вот пример простейшего цикла while – он выполняется, пока пользователь
не введет 0
:
n = int(input())
while n != 0:
print(n + 5)
n = int(input())
Цикл while также часто называют бесконечным, поскольку он может
выполняться до тех пор, пока пользователь не остановит его нажатием
определенной клавиши. Бесконечные циклы можно создавать намеренно – для
выполнения фонового скрипта, игры, прикладной программы. Но иногда цикл while может
стать бесконечным из-за ошибки. Например, если в приведенном выше коде не
указать ввод новой переменной n = int(input())
в теле цикла, while будет
бесконечно выводить одно и то же значение, пока пользователь не остановит выполнение программы нажатием Ctrl + C.
Управление бесконечным циклом while в Питоне
Самый простой способ управления бесконечным циклом –
использование оператора break
.
В приведенном ниже коде список lst
генерируется случайным образом, и до начала цикла его длина
неизвестна. Однако выполнение цикла можно оставить, как только список опустеет
в результате многократного выполнения операции pop()
:
import random
lst = [i for i in range(random.randint(5, 500))]
while True:
if not lst:
break
print(lst.pop())
Если выполнение цикла не остановить сразу же, как только список опустеет, появится ошибка:
IndexError: pop from empty list
Оператор break
также помогает сократить количество итераций и прекратить выполнение программы, как только нужное решение найдено. Например, таким образом можно найти наименьший делитель числа n, отличный от 1:
n = int(input())
i = 2
while True:
if n % i == 0:
break
i += 1
print(i)
Помимо break
,
управлять бесконечным циклом можно с помощью флагов (сигнальных меток). В
приведенном ниже примере программа бесконечно запрашивает у пользователя ввод
любого слова, пока пользователь не введет exit
. Это событие меняет статус цикла на False
, и работа программы завершается:
text = 'Введите любое слово: '
text += 'nИли введите exit для выхода: '
active = True
while active:
message = input(text)
if message == 'exit':
active = False
else:
print(message)
Пропуск итераций в цикле while
Оператор continue
можно использовать для пропуска операций, если элементы не соответствуют
заданным критериям. Этот код работает, пока не будет сформирован список из 5
элементов – при этом в список не включаются числа в диапазоне между 90 и 120, а
также число 50:
sp = []
while len(sp) < 5:
num = int(input())
if num == 50 or 90 <= num <= 120:
continue
sp.append(num)
print(sp)
Если пользователь введет набор цифр 45 50 121 119
, в список будут добавлены только числа, соответствующие
95 105 3 4 7
критериям:
[45, 121, 3, 4, 7]
Особенности цикла while
1. В цикле while можно использовать опциональный параметр else
. В этом примере процедура pop()
выполняется, пока
список не опустеет, после чего выводится сообщение Список пуст
:
import random
lst = [i for i in range(random.randint(5, 500))]
while len(lst) > 1:
print(lst.pop())
else:
print('Список пуст')
2. В цикле while можно использовать любое количество условий и условных
операторов and
, or,
иnot
:
n = int(input())
while True:
if n == 0:
break
elif n > 50 or n <= -50:
break
elif n % 2 == 0:
break
print(n / 5)
n = int(input())
3. Цикл while может быть вложенным. Этот код выводит простые числа из
диапазона от 2 до 100:
i = 2
while(i < 100):
j = 2
while j <= i / j:
if not i % j:
break
j = j + 1
if j > i / j:
print(f'{i} - простое число')
i = i + 1
4. В качестве вложенных циклов while могут включать в себя циклы for. Этот код, к примеру,
будет бесконечно печатать цифры в диапазоне от 0 до 5:
while True:
for i in range(5):
print(i)
5. Любой цикл for можно заменить циклом while, но обратное возможно только в том случае, когда количество итераций можно определить до начала цикла. К примеру, эти циклы while и for равнозначны – оба печатают цифры от 0 до 9:
i = 0
while i < 10:
print(i)
i += 1
for i in range(10):
print(i)
А этот цикл while заменить циклом for невозможно – программа будет бесконечно
возводить в квадрат все введенные пользователем числа, пока не получит 0
:
n = int(input())
while True:
if n == 0:
break
print(n ** 2)
n = int(input())
Практика
Задание 1
Напишите программу, которая принимает на вход целые числа и
вычисляет их сумму, пока пользователь не введет 0.
Пример ввода:
4
5
6
0
Вывод:
15
Решение:
summa = 0
while True:
n = int(input())
summa += n
if n == 0:
break
print(summa)
Задание 2
Напишите программу, которая получает от пользователя число n > 100, и вычисляет (без
использования методов строк) произведение цифр, из которых n состоит.
Пример ввода:
335
Вывод:
45
Решение:
n = int(input())
prod = 1
while n:
prod *= n % 10
n //= 10
print(prod)
Задание 3
Напишите программу, которая получает на вход два числа a и b, и находит наименьшее число c, которое без остатка
делится на a и b.
Пример ввода:
7
12
Вывод:
84
Решение:
a, b = int(input()), int(input())
c = a
while c % b:
c += a
print(c)
Задание 4
Напишите программу, которая составляет строку из полученных
от пользователя слов, пока длина строки не достигнет 50 символов. Слова,
начинающиеся с гласных, в строку не включаются.
Пример ввода:
о
бойся
Бармаглота
сын
он
так
свиреп
и
дик
а
в глуще
рымит
Вывод:
бойся Бармаглота сын так свиреп дик в глуще рымит
Решение:
st = ''
while len(st) < 50:
word = input()
if word[0] in 'аиеёоуыэюя':
continue
st += ' ' + word
print(st)
Задание 5
Напишите программу для конвертации числа из десятичного системы
в двоичную без использования функции bin()
.
Пример ввода:
25
Вывод:
11001
Решение:
n = int(input())
result = ''
while n > 0:
result = str(n % 2) + result
n = n // 2
print(result)
Задание 6
Напишите программу, которая получает на вход число и без
использования строковых методов переставляет цифры в обратном порядке.
Пример ввода:
176435
Вывод:
534671
Решение:
n = int(input())
rev = 0
while n!= 0:
r = n % 10
rev = rev * 10 + r
n = n // 10
print(rev)
Задание 7
Напишите программу для вычисления факториала числа n без использования функции math.factorial()
.
Пример ввода:
7
Вывод:
5040
Решение:
n = int(input())
fact = 1
while n > 1:
fact *= n
n -= 1
print(fact)
Задание 8
Напишите программу, которая получает от пользователя число n и
определяет, является ли оно простым, или у него есть делители, кроме 1 и самого
себя.
Пример ввода:
60
Вывод:
60 делится на 2
60 делится на 3
60 делится на 4
60 делится на 5
60 делится на 6
60 делится на 10
60 делится на 12
60 делится на 15
60 делится на 20
60 делится на 30
Таким образом, 60 не является простым числом
Решение:
n = int(input())
flag = False
i = 2
while i < n:
if n % i ==0:
flag = True
print(f'{n} делится на {i}')
i += 1
if flag:
print(f'Таким образом, {n} не является простым числом')
else:
print(f'{n} - простое число')
Задание 9
Напишите программу, использующую вложенный цикл while для вывода треугольника
размером n x n х n, состоящего из символов*
.
Пример ввода:
6
Вывод:
*
**
***
****
*****
******
Решение:
n = int(input())
i, j = 0, 0
while i < n:
while j <= i:
print('*', end='')
j += 1
j = 0
i += 1
print('')
Задание 10
Напишите программу для запоминания английских названий месяцев:
1. Русские названия месяцев выводятся в случайном порядке с
помощью метода random.shuffle()
.
2. Пользователь получает три попытки для написания правильного
названия на английском.
3. После трех неверных попыток программа переходит к другому
слову.
Пример ввода:
Месяц март по-английски называется: march
Месяц январь по-английски называется: January
Месяц август по-английски называется: august
Месяц май по-английски называется: may
Месяц апрель по-английски называется: aprile
Неверно! Осталось попыток: 2
Месяц апрель по-английски называется: aprill
Неверно! Осталось попыток: 1
Месяц апрель по-английски называется: appril
Неверно! Осталось попыток: 0
Попытки исчерпаны!
Месяц июль по-английски называется: july
Месяц сентябрь по-английски называется: september
Месяц июнь по-английски называется: june
Месяц октябрь по-английски называется: october
Месяц ноябрь по-английски называется: november
Месяц декабрь по-английски называется: december
Месяц февраль по-английски называется: february
Вывод:
Конец игры
Количество правильных ответов: 11
Число ошибок: 3
Решение:
import random
correct, wrong, attempts = 0, 0, 3
months = {'январь': 'January', 'февраль': 'February', 'март': 'March',
'апрель': 'April', 'май': 'May', 'июнь': 'June',
'июль': 'July', 'август': 'August', 'сентябрь': 'September',
'октябрь': 'October', 'ноябрь': 'November', 'декабрь': 'December'}
rand_keys = list(months.keys())
random.shuffle(rand_keys)
for key in rand_keys:
counter = 0
while counter < attempts:
spelling = input(f'Месяц {key} по-английски называется: ')
if spelling.title() == months[key]:
correct += 1
break
else:
counter += 1
wrong += 1
print(f'Неверно! Осталось попыток: {attempts - counter}')
else:
print(f'Попытки исчерпаны!')
print('Конец игры')
print(f'Количество правильных ответов: {correct}')
print(f'Число ошибок: {wrong}')
Подведем итоги
Цикл while используют в случаях, когда число итераций невозможно
оценить заранее. Во всех остальных случаях лучше применять цикл for. Чтобы цикл while случайно
не превратился в бесконечный, стоит продумать все события и условия, которые
должны приводить к своевременному прерыванию программы.
В следующей статье приступим к изучению функций.
***
Содержание самоучителя
- Особенности, сферы применения, установка, онлайн IDE
- Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
- Типы данных: преобразование и базовые операции
- Методы работы со строками
- Методы работы со списками и списковыми включениями
- Методы работы со словарями и генераторами словарей
- Методы работы с кортежами
- Методы работы со множествами
- Особенности цикла for
- Условный цикл while
- Функции с позиционными и именованными аргументами
- Анонимные функции
- Рекурсивные функции
- Функции высшего порядка, замыкания и декораторы
- Методы работы с файлами и файловой системой
- Регулярные выражения
- Основы скрапинга и парсинга
- Основы ООП: инкапсуляция и наследование
- Основы ООП – абстракция и полиморфизм
- Графический интерфейс на Tkinter
Из этого материала вы узнаете, что такое циклы while, как они могут становиться бесконечными, как использовать инструкцию else
в цикле while и как прерывать исполнение цикла.
Как и другие языки программирования 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
- Continue — ключевое слово
continue
прерывает текущую итерацию и передает управление в начало цикла, после чего условие снова проверяется. Если оно истинно, исполняется следующая итерация.
a = 1
while a < 5:
a += 1
if a == 3:
continue
print(a) # 2, 4, 5