Умовна конструкція if Python
Умовні конструкції використовують умовні вирази і в залежності від їх значення направляють виконання програми по одному з шляхів. Одна з таких конструкцій - це конструкція 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().
На завершення на консоль виводиться отримане значення. Наприклад, запустимо програму і введемо які-небудь дані:
Вкажіть код валюти (долари - 400, євро-401): 401
Валюта: євро
До отримання: 333.33