Оператор if…else в Python

В программировании оператор if — это условный оператор. Он используется для выполнения блока кода только при выполнении определённого условия. Например,

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

  1. Если студент набрал больше 90, присваиваем оценку A

  2. Если студент набрал больше 75, присваиваем оценку B

  3. Если студент набрал больше 65, присваиваем оценку C

Эти условные задачи можно решить с помощью оператора if.


Оператор if в Python

Оператор if выполняет блок кода только тогда, когда выполняется указанное условие.

Синтаксис

if condition:
    # тело оператора if

Здесь condition — это логическое выражение, такое как number > 5, которое вычисляется в True или False.

  • Если condition оценивается как True, выполняется тело оператора if.

  • Если condition оценивается как False, тело оператора if будет пропущено.

Рассмотрим пример.

Работа оператора 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

Пример: Оператор 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

Пример: Оператор 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

Подробнее об операторе 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, чтобы узнать больше.


Видео: Оператор if…else в Python