if...else

Время чтения: меньше 5 мин

Кратко

Секция статьи "Кратко"

Условная инструкция if-elif-else (её ещё иногда называют оператором ветвления) - основной инструмент выбора в Python. Проще говоря, она выбирает, какое действие следует выполнить, в зависимости от значения переменных в момент проверки условия.

Пример

Секция статьи "Пример"

Проверим вхождение некоторого числа в числовой диапазон:

        
          
          my_age: int = 19if my_age < 18:    print('Ты ещё не взрослый')elif 17 < my_age < 60:    print('Добро пожаловать в наш клуб :)')else:    print('Боюсь! Вы слишком старый')
          my_age: int = 19
if my_age < 18:
    print('Ты ещё не взрослый')
elif 17 < my_age < 60:
    print('Добро пожаловать в наш клуб :)')
else:
    print('Боюсь! Вы слишком старый')

        
        
          
        
      

Тернарный оператор

Секция статьи "Тернарный оператор"

В Python существует конструкция, которая по своему действию аналогична конструкции if-else, но при этом является выражением. Она называется тернарный оператор. Общий паттерн выглядит так:

        
          
          my_age: int = 19is_adult: str = 'Взрослый' if my_age >= 18 else 'Не взрослый'print(is_adult) # Взрослый
          my_age: int = 19
is_adult: str = 'Взрослый' if my_age >= 18 else 'Не взрослый'
print(is_adult) # Взрослый

        
        
          
        
      

Множество условий

Секция статьи "Множество условий"

Существуют моменты, когда нам надо проверить несколько условий, этого можно достичь с помощью операторов and и or:

        
          
          my_age: int = 19my_gender: str = 'male'if my_age >= 18 and my_gender == 'male':    print('Взрослый')elif my_age >= 18 and my_gender == 'female':    print('Взрослая')else:    print('В каком роде к вам обращаться?')
          my_age: int = 19
my_gender: str = 'male'
if my_age >= 18 and my_gender == 'male':
    print('Взрослый')
elif my_age >= 18 and my_gender == 'female':
    print('Взрослая')
else:
    print('В каком роде к вам обращаться?')

        
        
          
        
      

Oператоры any() & all()

Секция статьи "Oператоры any() & all()"

В случаях когда условии для проверки очень много, в Python есть возможность упростить запись кода, с помощью операторов:

  • all - должны совпасть все условия
  • any - должно совпасть хотя бы одно условие

Обязательно!: В выше названные операторы следует передавать итерабельные объекты, то есть: list, dict, set, tuple, ...

        
          
          my_age: int = 19my_gender: str = 'male'if all((    my_age >= 18,    my_gender == 'male')):    print('Взрослый')elif all((    my_age >= 18,    my_gender == 'female')):    print('Взрослая')else:    print('В каком роде к вам обращаться?')
          my_age: int = 19
my_gender: str = 'male'
if all((
    my_age >= 18,
    my_gender == 'male'
)):
    print('Взрослый')
elif all((
    my_age >= 18,
    my_gender == 'female'
)):
    print('Взрослая')
else:
    print('В каком роде к вам обращаться?')

        
        
          
        
      

Как пишется

Секция статьи "Как пишется"

Схематично структура для создания comprehension выглядит так:

Сначала записывается часть if с условным выражением, далее могут следовать одна или более необязательных частей elif, и, наконец, необязательная часть else. Общая форма записи условной инструкции if выглядит следующим образом:

        
          
          if test1:    state1elif test2:    state2else:    state3
          if test1:
    state1
elif test2:
    state2
else:
    state3