Цикл while
Допустим, нам необходимо напечатать значения квадратов натуральных чисел. Скажем, от 1 до 10 (квадрат числа - это число, умноженное само на себя).
Можно это сделать по-простому:
print(1 ** 2) print(2 ** 2) print(3 ** 2) print(4 ** 2) print(5 ** 2) print(6 ** 2) print(7 ** 2) print(8 ** 2) print(9 ** 2) print(10 ** 2)
И это даже будет работать. Но, во-первых, а если мы захотим таблицу до 100? А до 10000? Нам же жизни не хватит всё это писать. А во-вторых, мы разве для того изучаем программирование, чтобы руками все числа забивать?
Для того, чтобы не забивать каждое число, в программировании придуманы циклы. Цикл — разновидность управляющей конструкции, предназначенная для организации многократного исполнения набора инструкций (определение из Википедии).
Нам как раз многократное повторение (возведения числа в квадрат и печать этого квадрата) и нужно.
И начнём мы знакомство с самого простого в Python цикла - цикла while.
Синтаксис блока:
while УСЛОВИЕ: ТЕЛО_ЦИКЛА
Выполняет тело цикла до тех пор, пока условие цикла истинно. Что означает УСЛОВИЕ? Да ровно то же самое, что и у оператора if, без каких-либо дополнительных ограничений.
ТЕЛО_ЦИКЛА - это блок кода (одна, или несколько, или много строк кода, другие, вложенные блоки, и т.д.)
Например, значения квадратов может быть распечатаны так:
number = 1 while number <= 10: print(number ** 2) number = number + 1
Разберём пример построчно.
- number = 1 - присваиваем переменной number значение 1. Это наша точка старта внутри цикла.
- while number <= 10: - означает, что блок внутри будет выполняться до тех пор, пока значение number будет оставаться меньше либо равно 10.
- print(number ** 2) - печатаем квадрат числа.
- number = number + 1 - увеличиваем значение переменной number на 1.
После выполнения строк 1 - 4 выполнение переходит на строку 2, в которой снова проверяется условие number <= 10. После строки 4 переменная number стала равна 2. Это всё ещё не больше 10, поэтому цикл выполняется снова (он, собственно, поэтому и называется циклом).
После следующего выполнения number уже станет равным 3, и цикл выполнится ещё раз. И так 10 раз, после последнего из которых, number станет равным 11, и условие в строке 2 станет ложным. В таком случае выполнение программы пойдёт дальше после строки 4 (а поскольку у нас в этой программе после строки 4 ничего нет, то программа закончит своё выполнение).