Керування виконанням
Вираз if
Мабуть, найвідомішим типом оператора є оператор if
. Наприклад:
>>> x = int(input("Please enter an integer: "))
>>> if x < 0:
... x = 0
... print("Negative x changed to 0")
... elif x == 0:
... print("x is equal to zero")
... elif x == 1:
... print("x is equal to one")
... else:
... print("x is greater than one")
Але давайте зануримося в інструкцію if
з більш простими прикладами.
Як це працює
Оператор if визначається ключовим словом if
, за яким слідує логічний вираз або будь-який об’єкт і завершується двокрапкою. Оператор потребує тіло: інші оператори для виконання, які також називають блоком if. Тіло має відступ на однаковій відстані зліва (у Python ми використовуємо 4 пробіли для відступу одного блоку коду).
Оператори тіла виконуватимуться лише у випадку, якщо вираз if має значення True
.
1from random import randint
2
3number: int = randint(1, 2)
4
5if not number % 2: # the as number % 2 == 0
6 print(number, "is even")
Оператор print
у рядку #6 буде виконано лише для парного значення змінної number
.
Блок else
if
може використовуватися самостійно, він може розширити свою поведінку за допомогою блоку else
. Загальний синтаксис для тіла else
той самий: принаймні один оператор із відступом. Але else
не приймає жодного виразу після нього. Цей блок коду буде виконано лише тоді, коли перевірка істинності оператора if
буде невдалою.
1from random import randint
2
3number: int = randint(1, 2)
4
5if not number % 2:
6 print(number, "is even")
7else:
8 print(number, "is odd")
Ви можете приєднати лише один блок else до інструкції if. І ви не можете використовувати оператор else
сам по собі - це спричинить SyntaxError.
Блок(и) elif
Оператор elif
(else if) можна розглядати як напівоператор між if
та else
. Якщо у вашій програмі є більше двох виділених варіантів, ви можете розширити потік керування, додавши блоки elif
після оператора if
. Синтаксис дуже схожий на оператор if. Кожен elif
має свій власний логічний вираз або об’єкт для перевірки значення істинності.
Ви можете додати скільки завгодно операторів elif
. Але ви не можете використовувати elif
без оператора if
.
Python перевірить умови в операторах if
та elif
зверху вниз. Буде виконано перший, який вважається True
. Усі інші будуть проігноровано.
Якщо не було істиних умов, буде виконано блок else
(якщо існує).
>>> x = int(input("Enter some integer number: "))
>>> if not x % 5 and not x % 3: # the same as x % 5 == 0 and x % 3 == 0
... print(x, "is divisible by 5 and 3")
... elif not x % 5:
... print(x, "is divisible by 5")
... elif not x % 3:
... print(x, "is divisible by 3")
... else:
... print(x, "is not divisible by 5 or 3")
Примітка
Порядок у якому визначено умови має значення. Перевірка істинності йде зверху вниз і зупиняється на першому виразі, який є True
.
Використання
Оператори if/elif/else
допомагають вам контролювати, яка частина вашого коду виконується на основі умов ззовні.
1# Ask user for input
2grade = int(input("Enter your grade (0-100): "))
3
4# Use if/elif/else statements to assign letter grade
5if grade >= 90:
6 letter_grade = "A"
7elif grade >= 80:
8 letter_grade = "B"
9elif grade >= 70:
10 letter_grade = "C"
11elif grade >= 60:
12 letter_grade = "D"
13else:
14 letter_grade = "F"
15
16# Print the letter grade
17print("Your letter grade is:", letter_grade)