Цикл while
Научимся повторять заданные действия несколько раз. Для этого существуют операторы циклов. Мы разберем оператор цикла while. Он выполняет блок кода, пока истинно какое-то условие. Напомним, условный оператор if проверяет условие и, в зависимости от того, истинно оно или ложно, выполняет либо не выполняет следующий записанный с отступом блок. После этого программа в любом случае выполняется дальше (там еще может быть elif или else, но сути это не меняет).
Оператор while («пока») тоже проверяет условие и тоже, в случае его истинности, выполняет следующий блок кода (тело цикла). Однако после выполнения этого блока кода выполняется не то, что идет после него, а снова проверяется условие, записанное после while. Условие цикла записывается как и для if: с помощью операций отношения (>, >=, <, <=, !=, ==). Сложные условия можно составлять с помощью логических операций not, and, or.
Действия, расположенные в теле цикла (блок кода), записываются со смещением вправо на четыре пробела относительно начала слова while. Переменные, входящие в условие, должны на момент проверки условия цикла иметь значения.
Один шаг цикла (выполнение тела цикла) еще называют итерацией.
Используйте цикл while всегда, когда какая-то часть кода должна выполниться несколько раз, причем невозможно заранее сказать, сколько именно.
Составной оператор присваивания
| Сокращение | Полный вид |
|---|---|
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:
Ввод:
Вывод:Тест 2:
Ввод:
Вывод:Задача 2
Напишите программу, которая считывает числа до тех пор, пока не будет введён 0. Все числа (кроме нуля) выводить на одной строке через пробел.
Тест 1:
Ввод:
Вывод:Тест 2:
Ввод:
Вывод:Задача 3
Напишите программу, которая считывает строки до тех пор, пока не будет введена пустая строка. Все строки (кроме пустой) выводить каждую на новой строке.
Тест 1:
Ввод:
Вывод:Задача 4
Напишите программу, которая определяет температурный режим. Считывайте числа, пока не будет введено 0. Для каждого числа выводите:
ХОЛОДНО— если меньше15.5ЖАРКО— если больше28НОРМАЛЬНО— в остальных случаях
Тест 1:
Ввод:
Вывод:Задача 5
Напишите программу-проверку пароля. Считайте пароль и его повтор. Если пароль короче 8 символов — выведите Слишком короткий!. Если пароли не совпадают — Пароли не совпадают!. Иначе — OK.
Тест 1:
Ввод:
Вывод:Тест 2:
Ввод:
Вывод:Тест 3:
Ввод:
Вывод:Задача 6
Улучшите задачу 5: если пароль не прошёл проверку, программа должна снова просить ввести пароль — до тех пор, пока пользователь не введёт корректный. Дополнительное условие: пароль не должен содержать 123.
Тест 1:
Ввод:
Вывод:Задача 7
Напишите программу, которая считает сумму чисел, вводимых пользователем, до тех пор, пока не будет введён 0. В конце вывести итоговую сумму.
Тест 1:
Ввод:
Вывод:Тест 2:
Ввод:
Вывод:Задача 8
Напишите программу, которая считывает целое число и выводит количество его цифр.
Тест 1:
Ввод:
Вывод:Тест 2:
Ввод:
Вывод:Задача 9
Напишите программу, которая считывает целое число и выводит сумму его цифр.
Тест 1:
Ввод:
Вывод:Тест 2:
Ввод:
Вывод:Задача 10
Напишите программу, которая загадывает число (запишите его прямо в коде, например secret = 42) и просит пользователя угадать его. После каждой попытки выводите БОЛЬШЕ, МЕНЬШЕ или УГАДАЛ!. Программа завершается, когда число угадано.
Тест 1 (secret = 42):
Ввод:
Вывод: