If else

Содержание:

  1. Синтаксис конструкции if
  2. Синтаксис конструкции if-else
  3. Синтаксис конструкции if-elif-else
  4. Вложенные if-else
  5. Использование оператора pass
  6. Сокращённая форма if-else (тернарный оператор)
  7. Практика

Note

if-else — это основная конструкция управления потоком выполнения программы. Она позволяет принимать решения в зависимости от условий

Синтаксис конструкции if

if условие:
    блок_кода_если_условие_истинно
  • Условие — это выражение, которое возвращает True или False. Здесь нам помогут те самые операторы сравнения (например ==, > и тд — мы разбирали их в 02.03 - Операции с данными)
  • Если условие истинно (True), выполняется блок кода внутри if
  • Если условие ложно (False), блок кода пропускается
number = 5
 
if number > 0:
    print("Число положительное")  # Число положительное
    
print("продолжаю работу")

Tip

Обратите внимание в коде на последнюю строку, которая выводит сообщение “продолжаю работу”. Она не имеет отступов от начала строки, поэтому она не принадлежит к блоку if и будет выполняться в любом случае, даже если выражение в конструкции if возвратит False

Пример использования для работы с коллекциями:

Подробнее о коллекциях и операторе in — в 02.04 - Коллекции данных.

Когда мы работаем с коллекциями данных (списки, словари, множества, строки), без проверки можно столкнуться с ошибками. Вот пример, как проверка с in помогает избежать ошибок:

items = ["apple", "banana", "cherry"]
items.remove("orange")  # ValueError: list.remove(x): x not in list

Tip

Попытка удалить элемент, которого нет в списке, вызовет ошибку ValueError

Попробуем ее избежать:

items = ["apple", "banana", "cherry"]
 
if "orange" in items:
    items.remove("orange")

🧪 Практика (лучше закрепить сразу)

Example

  • Задание №1:

    дан код:

    number = 5
     
    if number > 0:
        print("Число положительное")  # Число положительное
     
    print("продолжаю работу")
    1. Запусти код, в терминале выполнения ты увидишь результат обоих принтов
    2. Попробуй изменить выражение, чтобы оно получилось False и запусти проанализируй результат
    3. Попробуй вместо выражения number > 0 передать просто True и затем False Проанализируй результат работы программы
  • Задание №2:

    Дан массив чисел numbers = [1, 2, 3, 4, 5]

    1. Попробуй узнать индекс элемента 10 - получи ошибку
    2. Используй конструкцию if, чтобы не получить ошибку

Синтаксис конструкции if-else

if условие:
    блок_кода_если_условие_истинно
else:
    блок_кода_если_условие_ложно
  • Если условие в if ложно, выполняется блок кода в else
number = -3
 
if number > 0:
    print("Число положительное")
else:
    print("Число отрицательное или ноль")
  • инструкции блока else также должны иметь отступы от начала строки как показано в примере

🧪 Практика

Example

  • Задание №1
    1. Сделай переменную number
    2. Напиши блок if-else который выведет на экран информацию об этом числе: Четное оно или нечетное
    • Подсказка если не получается построить логику проверки выражения:

      Логику проверки условия можно сделать при помощи оператора, который возвращает остаток от деления. У четных чисел остаток от деления будет равен 0 при делении на 2


Синтаксис конструкции if-elif-else

Note

Если необходимо ввести несколько альтернативных условий, то можно использовать дополнительные блоки elif, после которого идет блок инструкций

if условие1:
    блок_кода_если_условие1_истинно
elif условие2:
    блок_кода_если_условие2_истинно
else:
    блок_кода_если_оба_условия_ложны
 

Note

Сначала Python проверяет выражение if. Если оно равно True, то выполняются инструкции из блока if. Если это условие возвращает False, то Python проверяет выражение из elif

Если выражение после elif равно True, то выполняются инструкции из блока elif. Но если оно равно False то выполняются инструкции из блока else

number = 0
 
if number > 0:
    print("Число положительное")
elif number < 0:
    print("Число отрицательное")
else:
    print("Число равно нулю")

Tip

При необходимости можно определить несколько блоков elif для разных условий

Note

Программа проверяет условия последовательно сверху вниз, пока одно из них не окажется истинным (True). Как только истинное условие найдено, соответствующий блок кода выполняется, а остальные блоки игнорируются

if условие1:
    блок_кода_если_условие1_истинно
elif условие2:
    блок_кода_если_условие2_истинно
elif условие3:
    блок_кода_если_условие3_истинно
else:
    блок_кода_если_все_условия_ложны

Да, в некоторых языка программирования, пишут else if, у нас это elif 😉

🧪 Практика

Example

  • Задание№1:

    дан код:

    temperature = 120
     
    if temperature < 0:
        print("Вода замёрзла (лёд)")
    elif 0 <= temperature < 100:
        print("Вода жидкая")
    elif temperature == 100:
        print("Вода закипела")
    else:
        print("Вода в состоянии пара")
    1. Прочесть и код и попробовать без его запуска определить, какой будет вывод в консоль
    2. Воспроизвести это IDE и сверить

Вложенные if-else

Tip

if-else можно вкладывать друг в друга для проверки более сложных условий.

number = 10
 
if number > 0:
    if number % 2 == 0:
        print("Число положительное и чётное")
    else:
        print("Число положительное и нечётное")
else:
    print("Число отрицательное или равно нулю")

Warning

Изображение забавно пока не сталкиваешься с такой ситуацией в коде - большое кол-во вложенных if-else - дурная практика. Это сильно ухудшает читаемость и поддержку кода.

Используется в крайних случаях, да и то, которые определенно будут иметь более хорошие альтернативы написания. Но знать это - обязательно надо!

🧪 Практика

Example

  • Задание№2:

    Сделай переменную которая хранит число, например number

    1. Напишите программу, которая проверяет число и:
      • Выводит "Чётное и положительное", если число чётное и больше 0
      • Выводит "Чётное и отрицательное", если число чётное и меньше 0
      • Выводит "Нечётное и положительное", если число нечётное и больше 0
      • Выводит "Нечётное и отрицательное", если число нечётное и меньше 0
      • Выводит "Число равно нулю", если пользователь ввёл 0
    2. Прогони программу с разными числами и убедись, что все отработало верно

Использование оператора pass

Tip

Если блок if не должен выполнять никаких действий, используйте pass

if 10 > 5:
    pass  # Ничего не делаем
else:
    print("Сработал else!")

Практика

Example

  1. Сделай условный оператор, где сработает pass, убедись как работает

Сокращённая форма if-else (тернарный оператор)

Tip

Тернарный оператор позволяет сократить запись условий if-else до одной строки, когда требуется выбрать одно из двух значений в зависимости от условия. Он удобен для простых проверок, чтобы сделать код более компактным и читаемым.

Синтаксис:

выражение_если_истинно if условие else выражение_если_ложно
number = 5
result = "Положительное" if number > 0 else "Неположительное"
print(result)  # Вывод: Положительное

Почему он называется тернарным?

Tip

Тернарный оператор состоит из трёх компонентов:

  1. Условие: number > 0
  2. Результат, если условие истинно: "Положительное"
  3. Результат, если условие ложно: "Неположительное"

Note

Так мало кто делает. Просто знай, что так можно, если вдруг где-то встретишь 🙂


🧪 Практика

Example

  • Задание№1

    1. Напишите программу, где будет 2 переменные с числом, а программа выводит сообщение, какое из чисел наибольшее
    2. Учти, что числа так же могут быть равны друг другу - такой случай тоже надо обработать
  • Задание№2

    Дан список зарегистрированных логинов:

    used_logins = ["user123", "hacker", "test_bot"]

    1. Сделать переменную new_login, которая будет содержать в себе "user123"
    2. Написать if-else логику, которая будет проверять, есть ли уже такой логин В логике проверки использовать оператор in
    3. Выводить в виде текста использовался ли логин или нет
    4. изменить переменную new_login чтобы логин не совпадал с теми, что есть в used_logins
    5. Прогнать программу заново

⬅️ Назад: 02.05 - Изменяемые и неизменяемые типы данных | Далее: 02.07 - Циклы ➡️ Модуль: 02 - MOC