Керування виконанням

Вираз if

Мабуть, найвідомішим типом оператора є оператор 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)