@ -1197,27 +1197,29 @@ for x in range(10, 20, 3): # range(10, 20, 3) -> 10, 13, 16, 19
Цикл while ("пока") позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается после ключевого слова while и проверяется до выполнения тела цикла.
Цикл while используется, когда невозможно определить точное количество повторений цикла.
```python
i = 0 # объявление переменной i для условия цикла
while i < 5: # ключевое слово 'while' и условие выполнение цикла
# тело цикла
print(i) # вывод значения переменной i
i += 1 # увеличение значения переменной i на единицу
```
```python
# Вывод:
>> 0
>> 1
>> 2
>> 3
>> 4
```
Цикл while может быть бесконечным.
```python
i = 0
while True: # условие всегда истинно
print(i)
i += 1
```
```python
# Вывод:
>> 0
>> 1
@ -1228,23 +1230,24 @@ while True: # условие всегда истинно
>> 999
...
# Это может продолжаться долго...
```
Выполнение цикла можно прерывать с помощью оператора break.
```python
i = 0
while 1: # условие всегда истинно
if i == 3: # если i равно 3, то вызываем оператор break
break # оператор break прерывает выполнение цикла
print(i)
i += 1
```
```python
# Вывод:
>> 0
>> 1
>> 2
```
Оператор continue начинает повторение цикла заново.
```python
i = 0
while i < 5:
i += 1 #
@ -1252,39 +1255,42 @@ while i < 5:
continue # оператор continue начинает повторение цикла заново
# в случае вызова continue код ниже не выполнится
print(i)
```
```python
# Вывод:
>> 0
>> 2
>> 4
```
Как и для цикла for, для цикла while мы можем записать конструкцию else.
```python
x = 1
while x < 5:
print(x)
x += 1
else:
print('Цикл завершен')
```
```python
# Вывод:
>> 1
>> 2
>> 3
>> 4
>> Цикл завершен
```
Примеры
1. Числа от A до B
```python
# Пользователь вводит числа A и B (A > B). Выведите все числа от A до B включительно.
A = int(input('Введите число: '))
B = int(input('Введите число: '))
while A >= B:
print(A)
A -= 1
```
```python
# Ввод:
>> 12
>> 7
@ -1304,11 +1310,11 @@ while A >= B:
>> 4
>> 3
>> 2
```
2. Много чисел
```python
# Пользователь вводит числа до тех пор, пока не введет 0.
# Выведите количество введенных чисел (0 считать не нужно).
n = int(input('Введите число: '))
counter = 0 # счетчик введенных чисел
while n: # n неявно преобразуется в тип bool
@ -1317,7 +1323,8 @@ while n: # n неявно преобразуется в тип bool
counter += 1 # увеличиваем счетчик
print(f'Количество чисел {counter}')
```
```python
# Ввод:
>> 1
>> 10
@ -1326,8 +1333,9 @@ print(f'Количество чисел {counter}')
>> 0
# Вывод:
>> Количество чисел 4
```
3. Наименьший делитель
```python
# Пользователь вводит число N (N > 1). Выведите его наименьший делитель.
N = int(input('Введите число: '))
div = 2
@ -1335,25 +1343,29 @@ div = 2
while N % div != 0:
div += 1
print(f'Наименьший делитель равен {div}')
```
```python
# Ввод:
>> 10
# Вывод:
>> Наименьший делитель равен 2
```
```python
# Ввод:
>> 15
# Вывод:
>> Наименьший делитель равен 3
```
```python
# Ввод:
>> 17
# Вывод:
>> Наименьший делитель равен 17
```
Решение задач
1. Четные от A до B
Пользователь вводит числа A и B (A > B). Выведите четные числа от A до B включительно.
Пользователь вводит число N. Выведите факториал число N. Факториал числа N - это произведение всех чисел от 1 до N включительно. Например, факториал числа 5 равен 120.
```python
# Ввод:
>> 5
# Вывод:
>> 120
```
```python
# Ввод:
>> 3
# Вывод:
>> 6
```
```python
# Ввод:
>> 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 ...