Условия и циклы
Предисловие
Этот раздел посвящён командам if
и while
.
Дадим здесь их краткий обзов.
Ветвление
Команда if
имеет следующий синтаксис:
if формула:
команды
elif формула:
команды
elif формула:
команды
...
elif формула:
команды
else:
команды
Все elif
(которых может быть сколько угодно) и else
(которого не может быть больше одного) являются опциональными.
Выполняется такая команда следующим образом:
- вычисляется первая формула, если её значение «истинно» (что именно означает «истинность», пока уточнять не будем), выполняется первая последовательность команд; на этом исполнение
if
завершается - в противном случае вычисляется вторая формула, если её значение «истинно» выполняется вторая последовательность команд; на этом исполнение
if
завершается - в противном случае вычисляется первая формула, если её значение «истинно», выполняется третья последовательность команд; на этом исполнение
if
завершается - и так далее
- если никакая из формул не дала «истинного» значения, выполняются команды, которые записаны в блоке
else:
Важно! все команды внутри одной последовательности должны начинаться с одной и той же колонки, причём более правой, чем та, в которой стоят слова if
, elif
, else
. В случае, если команда одна, допускается её ставить в ту же строчку, что и соответствующий ей if
, elif
, else
.
Цикл
Команда while
имеет следующий синтаксис:
while формула:
команды
(есть ещё более сложный while .. else
, но мы не будем его трогать, тем более что почти нигде, кроме Питона, он не встречается).
Вышеупомянутая команда while
выполняется так, как выполнялся бы бесконечный код
if формула:
команды
if формула:
команды
if формула:
команды
...
Из цикла можно преждевременно выйти командами continue
и break
:
- первая из них пропускает все оставшиеся до следующей проверки истинности формулы команды
- вторая — завершает выполнение всей команды
while
Запустите следующую программу для того, чтобы понять разницу:
i = 1
while print("проверка условия в", i, "раз") == None:
print("перед break")
if i > 10: break
print("перед continue")
i = i + 1
continue
print("после continue")
i = i + 2
Истинность
Теперь чуть-чуть поговорим о вышеупомянутой «истинности»:
- специальная константа
True
истинна - специальная константа
False
— нет - другие объекты тоже имеют свои истинности, но как именно эти истинности вычисляются — уточнять не будем: это не настолько важно
- операторы
==
,<
,<=
,>
,>=
ведут себя так, как и ожидается от «равно», «меньше», «меньше или равно», «больше», «больше или равно» - операторы
and
,or
,not
реализуют логические конъюнкцию, дизъюнкцию и отрицание - первые два из них имеют специальные правила вычисления формул, для которых они являются головой: а именно, они вычисляют свою правую подформулу только если первая оказалась истинной (для
and
) или ложной (дляor
)