Условные операторы

Все программы, которые мы писали, имели линейную структуру: все действия выполняются обязательно и в той последовательности, что вы написали их в скрипте. Иногда нам хочется получать разное поведение в зависимости от какого-либо условия. Вспомним пример из домашней работы:

Спросите у пользователя его рост в сантиметрах и скажите на сколько целых вершков он ниже, чем Петр I.

Возможное решение:

user_hight = int(input('Введите свой рост в сантиметрах\\n'))
peter_hight = 203
delta = int((peter_hight - user_hight) // 4.445)
print(f"Петр I выше вас на {delta} вершков")

Но если вдруг пользователь выше двух метров, то мы получим отрицательную разницу. В таком случае логичнее сказать, что Петр ниже на Х вершков. Для таких случаев в питоне есть условный оператор if/else

Выглядит он следующим образом:

if Условие:
    Блок инструкций 1
else:
    Блок инструкций 2

Блок инструкций 1 будет выполнен, если Условие истинно. Если Условие ложно, будет выполнен Блок инструкций 2.

В случае с Петром мы могли бы написать так:

user_hight = int(input('Введите свой рост в сантиметрах\\n'))
peter_hight = 203
delta = int((peter_hight - user_hight) // 4.445)

if delta >= 0:  # если разница неотрицательная, то
    print(f"Петр I выше вас на {delta} вершков")
else:  # иначе/если разница отрицательная 
    print(f"Петр I ниже вас на {-delta} вершков")

Внутри условий могут быть:

Также условие может включать логическое выражение с несколькими условиями с использованием and, or, not.

# Выведем ошибку, если число не соответствует условию
x = int(input('Введите однозначное положительное число\\n'))
if 0 < x and x < 10:
    print('Спасибо!')
else:
    print('Что-то пошло не так')