Оператор if…else в Python
В программировании оператор if — это условный оператор. Он используется для выполнения блока кода только при выполнении определённого условия. Например,
Предположим, нам нужно присвоить разные оценки студентам в зависимости от их баллов.
Если студент набрал больше 90, присваиваем оценку A
Если студент набрал больше 75, присваиваем оценку B
Если студент набрал больше 65, присваиваем оценку C
Эти условные задачи можно решить с помощью оператора if.
Оператор if в Python
Оператор if выполняет блок кода только тогда, когда выполняется указанное условие.
Синтаксис
if condition:
# тело оператора if
Здесь condition — это логическое выражение, такое как number > 5, которое вычисляется в True или False.
Если
conditionоценивается какTrue, выполняется тело оператораif.Если
conditionоценивается какFalse, тело оператораifбудет пропущено.
Рассмотрим пример.
Пример: Оператор if в Python
number = int(input('Enter a number: '))
# проверка, больше ли число 0
if number > 0:
print(f'{number} is a positive number.')
print('A statement outside the if statement.')
Пример вывода 1
Enter a number: 10
10 is a positive number.
A statement outside the if statement.
Если пользователь вводит 10, условие number > 0 оценивается как True. Следовательно, выполняется тело if.
Пример вывода 2
Enter a number: -2
A statement outside the if statement.
Если пользователь вводит -2, условие number > 0 оценивается как False. Следовательно, тело if пропускается.
Отступы в Python
Python использует отступы для определения блока кода, такого как тело оператора if. Например,
x = 1
total = 0
# начало оператора if
if x != 0:
total += x
print(total)
# конец оператора if
print("This is always executed.")
Здесь тело if содержит два оператора. Мы знаем это, потому что два оператора (сразу после if) начинаются с отступа.
Обычно мы используем четыре пробела для отступа в Python, хотя любое количество пробелов работает, если мы придерживаемся последовательности.
Вы получите ошибку, если напишете приведённый выше код таким образом:
# Код с ошибкой
x = 1
total = 0
if x != 0:
total += x
print(total)
Здесь мы не использовали отступ после оператора if. В этом случае Python думает, что наш оператор if пустой, что приводит к ошибке.
Оператор if…else в Python
Оператор if может иметь необязательную клаузу else. Оператор else выполняется, если условие в операторе if оценивается как False.
Синтаксис
if condition:
# тело оператора if
else:
# тело оператора else
Здесь, если condition внутри оператора if оценивается как
True — выполняется тело
if, а телоelseпропускается.False — выполняется тело
else, а телоifпропускается.
Рассмотрим пример.
Пример: Оператор if…else в Python
number = int(input('Enter a number: '))
if number > 0:
print('Positive number')
else:
print('Not a positive number')
print('This statement always executes')
Пример вывода 1
Enter a number: 10
Positive number
This statement always executes
Если пользователь вводит 10, условие number > 0 оценивается как True. Следовательно, выполняется тело if, а тело else пропускается.
Пример вывода 2
Enter a number: 0
Not a positive number
This statement always executes
Если пользователь вводит 0, условие number > 0 оценивается как False. Следовательно, тело if пропускается, и выполняется тело else.
Оператор if…elif…else в Python
Оператор if...else используется для выполнения блока кода между двумя альтернативами.
Однако, если нам нужно сделать выбор между более чем двумя альтернативами, мы используем оператор if...elif...else.
Синтаксис
if condition1:
# блок кода 1
elif condition2:
# блок кода 2
else:
# блок кода 3
Рассмотрим пример.
Пример: Оператор if…elif…else в Python
number = -5
if number > 0:
print('Positive number')
elif number < 0:
print('Negative number')
else:
print('Zero')
print('This statement is always executed')
Вывод
Negative number
This statement is always executed
Здесь первое условие, number > 0, оценивается как False. В этом случае проверяется второе условие.
Второе условие, number < 0, оценивается как True. Следовательно, выполняются операторы внутри блока elif.
В приведённой выше программе важно отметить, что независимо от значения переменной number будет выполнен только один блок кода.
Вложенные операторы if в Python
Можно включить оператор if внутрь другого оператора if. Например,
number = 5
# внешний оператор if
if number >= 0:
# внутренний оператор if
if number == 0:
print('Number is 0')
# внутренний оператор else
else:
print('Number is positive')
# внешний оператор else
else:
print('Number is negative')
Вывод
Number is positive
Вот как работает эта программа.
Подробнее об операторе if…else в Python
Компактный оператор if
В определённых ситуациях оператор if можно упростить до одной строки. Например,
number = 10
if number > 0:
print('Positive')
Этот код можно компактно записать как
number = 10
if number > 0: print('Positive')
Этот однострочный подход сохраняет ту же функциональность, но в более сжатом формате.
Тернарный оператор в Python if…else
В Python нет тернарного оператора. Однако мы можем использовать if...else для работы аналогично тернарному оператору в других языках. Например,
grade = 40
if grade >= 50:
result = 'pass'
else:
result = 'fail'
print(result)
можно записать как
grade = 40
result = 'pass' if number >= 50 else 'fail'
print(result)
Логические операторы для добавления нескольких условий
При необходимости мы можем использовать логические операторы, такие как and и or, для создания сложных условий для работы с оператором if.
age = 35
salary = 6000
# добавить два условия с помощью оператора and
if age >= 30 and salary >= 5000:
print('Eligible for the premium membership.')
else:
print('Not eligible for the premium membership')
Вывод
Eligible for the premium membership.
Здесь мы использовали логический оператор and для добавления двух условий в оператор if.
Мы также использовали >= (оператор сравнения) для сравнения двух значений.
Логические операторы и операторы сравнения часто используются с операторами if...else. Посетите Операторы в Python, чтобы узнать больше.