Перейти к содержанию

Цикл while

Научимся повторять заданные действия несколько раз. Для этого существуют операторы циклов. Мы разберем оператор цикла while. Он выполняет блок кода, пока истинно какое-то условие. Напомним, условный оператор if проверяет условие и, в зависимости от того, истинно оно или ложно, выполняет либо не выполняет следующий записанный с отступом блок. После этого программа в любом случае выполняется дальше (там еще может быть elif или else, но сути это не меняет).

Оператор while («пока») тоже проверяет условие и тоже, в случае его истинности, выполняет следующий блок кода (тело цикла). Однако после выполнения этого блока кода выполняется не то, что идет после него, а снова проверяется условие, записанное после while. Условие цикла записывается как и для if: с помощью операций отношения (>, >=, <, <=, !=, ==). Сложные условия можно составлять с помощью логических операций not, and, or.

Действия, расположенные в теле цикла (блок кода), записываются со смещением вправо на четыре пробела относительно начала слова while. Переменные, входящие в условие, должны на момент проверки условия цикла иметь значения.

while условие:
    блок кода (тело цикла)

Один шаг цикла (выполнение тела цикла) еще называют итерацией.

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

1
2
3
4
5
6
number = int(input())
while number > 0:
    print('Вы ввели положительное число! Вводите дальше.')
    number = int(input())
    print('Так-так, что тут у нас...')
print('Вы ввели отрицательное число или ноль. Всё.')

Составной оператор присваивания

Сокращение Полный вид
x += 5 x = x + 5
x -= 5 x = x - 5
x *= 5 x = x * 5
x /= 5 x = x / 5
x //= 5 x = x // 5
x %= 5 x = x % 5

Задачи

Задача 1

Напишите программу, которая считывает целое число и выводит все числа от этого числа до 1 включительно — каждое на новой строке.

Тест 1:

Ввод:

5
Вывод:
5
4
3
2
1

Тест 2:

Ввод:

3
Вывод:
3
2
1


Задача 2

Напишите программу, которая считывает числа до тех пор, пока не будет введён 0. Все числа (кроме нуля) выводить на одной строке через пробел.

Тест 1:

Ввод:

1
2
3
0
Вывод:
1 2 3

Тест 2:

Ввод:

5
10
0
Вывод:
5 10


Задача 3

Напишите программу, которая считывает строки до тех пор, пока не будет введена пустая строка. Все строки (кроме пустой) выводить каждую на новой строке.

Тест 1:

Ввод:

не пустая
ой
[пустая строка]
Вывод:
не пустая
ой


Задача 4

Напишите программу, которая определяет температурный режим. Считывайте числа, пока не будет введено 0. Для каждого числа выводите:

  • ХОЛОДНО — если меньше 15.5
  • ЖАРКО — если больше 28
  • НОРМАЛЬНО — в остальных случаях

Тест 1:

Ввод:

28.6
15
28
0
Вывод:
ЖАРКО
ХОЛОДНО
НОРМАЛЬНО


Задача 5

Напишите программу-проверку пароля. Считайте пароль и его повтор. Если пароль короче 8 символов — выведите Слишком короткий!. Если пароли не совпадают — Пароли не совпадают!. Иначе — OK.

Тест 1:

Ввод:

пароль
пароль
Вывод:
Слишком короткий!

Тест 2:

Ввод:

пароль123
пароль456
Вывод:
Пароли не совпадают!

Тест 3:

Ввод:

пароль123
пароль123
Вывод:
OK


Задача 6

Улучшите задачу 5: если пароль не прошёл проверку, программа должна снова просить ввести пароль — до тех пор, пока пользователь не введёт корректный. Дополнительное условие: пароль не должен содержать 123.

Тест 1:

Ввод:

abc
пароль123
пароль123
password124
password124
Вывод:
Слишком короткий!
Содержит 123!
OK


Задача 7

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

Тест 1:

Ввод:

3
5
2
0
Вывод:
10

Тест 2:

Ввод:

10
-3
0
Вывод:
7


Задача 8

Напишите программу, которая считывает целое число и выводит количество его цифр.

Тест 1:

Ввод:

12345
Вывод:
5

Тест 2:

Ввод:

7
Вывод:
1


Задача 9

Напишите программу, которая считывает целое число и выводит сумму его цифр.

Тест 1:

Ввод:

123
Вывод:
6

Тест 2:

Ввод:

999
Вывод:
27


Задача 10

Напишите программу, которая загадывает число (запишите его прямо в коде, например secret = 42) и просит пользователя угадать его. После каждой попытки выводите БОЛЬШЕ, МЕНЬШЕ или УГАДАЛ!. Программа завершается, когда число угадано.

Тест 1 (secret = 42):

Ввод:

10
50
42
Вывод:
БОЛЬШЕ
МЕНЬШЕ
УГАДАЛ!