Условная конструкция if

Поділитись

Условные конструкции используют условные выражения и в зависимости от их значения направляют выполнение программы по одному из путей. Одна из таких конструкций – это конструкция if. Она имеет следующее формальное определение:

1
2
3
4
5
6
if логическое_выражение:
инструкции[
elif логическое выражение:
инструкции]
[else:
инструкции]

В самом простом виде после ключевого слова if идет логическое выражение. И если это логическое выражение возвращает True, то выполняется последующий блок инструкций, каждая из которых должна начинаться с новой стоки и должна иметь отступы от начала строки:

1
2
3
4
age = 22
if age > 21:
print("Доступ разрешен")
print("Завершение работы")

Поскольку в данном случае значение переменной age больше 21, то будет выполняться блок if, а консоль выведет следующие строки:

Доступ разрешен
Завершение работы

Отступ желательно делать в 4 пробела или то количество пробелов, которое кратно 4.

Обратите внимание в коде на последнюю стоку, которая выводит сообщение “Завершение работы”. Она не имеет отступов от начала строки, поэтому она не принадлежит к блоку if и будет выполняться в любом случае, даже если выражение в конструкции if возвратит False.

Но если бы мы поставили бы отступы, то она также принадлежала бы к конструкции if:

1
2
3
4
age = 22
if age > 21:
print("Доступ разрешен")
print("Завершение работы")

Если вдруг нам надо определить альтернативное решение на тот случай, если условное выражение возвратит False, то мы можем использовать блок else:

1
2
3
4
5
age = 18
if age > 21:
print("Доступ разрешен")
else:
print("Доступ запрещен")

Если выражение age > 21 возвращает True, то выполняется блок if, иначе выполняется блок else.

Если необходимо ввести несколько альтернативных условий, то можно использовать дополнительные блоки elif, после которого идет блок инструкций.

1
2
3
4
5
6
7
age = 18
if age >= 21
:print("Доступ разрешен")
elif age >= 18:
print("Доступ частично разрешен")
else:
print("Доступ запрещен")

Вложенные конструкции if

Конструкция if в свою очередь сама может иметь вложенные конструкции if:

1
2
3
4
5
6
7
age = 18
if age >= 18:
print("Больше 17")
if age > 21:
print("Больше 21")
else:
print("От 18 до 21")

Стоит учитывать, что вложенные выражения if также должны начинаться с отступов, а инструкции во вложенных конструкциях также должны иметь отступы. Отступы, расставленные не должным образом, могут изменить логику программы. Так, предыдущий пример НЕ аналогичен следующему:

1
2
3
4
5
6
7
age = 18
if age >= 18:
print("Больше 17")
if age > 21:
print("Больше 21")
else:
print("От 18 до 21")

Теперь напишем небольшую программку, которая использует условные конструкции. Данная программка будет представлять собой своего рода обменный пункт:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Программа Обменный пункт
 usd = 57euro = 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

Поділитись