Условные конструкции используют условные выражения и в зависимости от их значения направляют выполнение программы по одному из путей. Одна из таких конструкций — это конструкция if. Она имеет следующее формальное определение:
if логическое_выражение: инструкции [elif логическое выражение: инструкции] [else: инструкции]
В самом простом виде после ключевого слова if идет логическое выражение. И если это логическое выражение возвращает True, то выполняется последующий блок инструкций, каждая из которых должна начинаться с новой стоки и должна иметь отступы от начала строки:
age = 22 if age > 21: print("Доступ разрешен") print("Завершение работы")
Поскольку в данном случае значение переменной age больше 21, то будет выполняться блок if, а консоль выведет следующие строки:
Доступ разрешен Завершение работы
Отступ желательно делать в 4 пробела или то количество пробелов, которое кратно 4.
Обратите внимание в коде на последнюю стоку, которая выводит сообщение «Завершение работы». Она не имеет отступов от начала строки, поэтому она не принадлежит к блоку if и будет выполняться в любом случае, даже если выражение в конструкции if возвратит False.
Но если бы мы поставили бы отступы, то она также принадлежала бы к конструкции if:
age = 22 if age > 21: print("Доступ разрешен") print("Завершение работы")
Если вдруг нам надо определить альтернативное решение на тот случай, если условное выражение возвратит False, то мы можем использовать блок else:
age = 18 if age > 21: print("Доступ разрешен") else: print("Доступ запрещен")
Если выражение age > 21
возвращает True, то выполняется блок if, иначе выполняется блок else.
Если необходимо ввести несколько альтернативных условий, то можно использовать дополнительные блоки elif, после которого идет блок инструкций.
age = 18 if age >= 21: print("Доступ разрешен") elif age >= 18: print("Доступ частично разрешен") else: print("Доступ запрещен")
Вложенные конструкции if
Конструкция if в свою очередь сама может иметь вложенные конструкции if:
age = 18 if age >= 18: print("Больше 17") if age > 21: print("Больше 21") else: print("От 18 до 21")
Стоит учитывать, что вложенные выражения if также должны начинаться с отступов, а инструкции во вложенных конструкциях также должны иметь отступы. Отступы, расставленные не должным образом, могут изменить логику программы. Так, предыдущий пример НЕ аналогичен следующему:
age = 18 if age >= 18: print("Больше 17") if age > 21: print("Больше 21") else: print("От 18 до 21")
Теперь напишем небольшую программку, которая использует условные конструкции. Данная программка будет представлять собой своего рода обменный пункт:
# Программа Обменный пункт usd = 57 euro = 60 money = int(input("Введите сумму, которую вы хотите обменять: ")) currency = int(input("Укажите код валюты (доллары - 400, евро - 401): ")) if currency == 400: cash = round(money / usd, 2) print("Валюта: доллары США") elif currency == 401: cash = round(money / euro, 2) print("Валюта: евро") else: cash = 0 print("Неизвестная валюта") print("К получению:", cash)
С помощью функции input()
получаем вводимые пользователем данные на консоль. Причем данная функция возвращает данные в виде строки, поэтому нам надо ее еще привести к целому числу с помощью функции int()
, чтобы введенные данные можно было использовать в арифметических операциях.
Программа подразумевает, что пользователь вводит количество средств, которые надо обменять, и код валюты, на которую надо произвести обмен. Коды валюты достаточно условны: 400 для долларов и 401 для евро.
С помощью конструкции if проверяем код валюты и делим на соответствующий валютный курс. Так как в процессе деления образуется довольно длинное число с плавающей точкой, которое может содержать множество знаков после запятой, то оно округляется до двух чисел после запятой с помощью функции round()
.
В завершении на консоль выводится полученное значение. Например, запустим программу и введем какие-нибудь данные:
Введите сумму, которую вы хотите обменять: 20000 Укажите код валюты (доллары - 400, евро - 401): 401 Валюта: евро К получению: 333.33