Python для начинающих: Условные операторы и match-case

Условные конструкции — неотъемлемая часть любого языка програмрования, Python не исключение. В этом уроке рассмотрим различные аспекты условных конструкций в Python: вложенные условия, составные условия и тернарный оператор. Также познакомимся с функциональностью match-case, появившейся в Python 3.10.

Проверка на пустое значение

Python считает ложным (False) значения: булево False, целое число 0, вещественное число 0.0, пустая строка, пустой список и т. д. Все остальные значения истинны (True). Это удобно для проверки на пустоту:

name = input()
if name:
    print(name)
else:
    print("Вы ничего не ввели")

Здесь if name: эквивалентно if name == True:. Условие истинно, если переменная name содержит значение. Хотя можно явно писать if name == True:, это менее лаконично.

Вложенные условные конструкции

Условные конструкции можно вкладывать:

a = True
b = False

if a == True:
    if b == True:
        print(1)
    else:
        print(2)
else:
    if b == True:
        print(3)
    else:
        print(4)

Важно следить за отступами, определяющими принадлежность блоков кода к условным конструкциям. Чрезмерная вложенность ухудшает читаемость, поэтому следует стремиться к минимальной глубине вложенности.

Составные условия

Для проверки нескольких условий одновременно используются цепочки сравнений или логические операторы.

Цепочки сравнений:

a = int(input())
if 10 < a < 20:
    print(a)

Этот пример демонстрирует проверку, находится ли число a в интервале (10, 20). Однако, такой подход не всегда удобен, особенно при работе со сложными условиями или нечисловыми данными.

Логические операторы:

  • and (логическое умножение): Результат True только если все условия истинны.
  • or (логическое сложение): Результат True, если хотя бы одно условие истинно.
  • not (логическое отрицание): Инвертирует значение условия.

Пример использования логических операторов:

x = 20
if x > 10 and x < 100:
    print("Условие выполнено")

a = int(input())
if a == 10 or a == 20 or a == 30:
    print("10, 20 или 30")
elif a > 10 and a < 100:
    print("10-100")
else:
    print(a)

При использовании нескольких логических операторов скобки помогают контролировать порядок выполнения операций.

Оператор pass

Иногда нужно задать условие, не требующее выполнения действий. В таких случаях используется оператор pass:

a = int(input())
if a < 10:
    pass
else:
    print(a)

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

Тернарный оператор позволяет записать конструкцию if-else в одну строку:

a = int(input())
number = a if a < 20 else 100
print(number)

Это делает код компактнее и читабельнее, особенно полезно при использовании в генераторах списков.

match-case (Python 3.10+)

В Python 3.10 появилась конструкция match-case, аналогичная switch-case в других языках. Она позволяет сопоставлять выражение с несколькими шаблонами:

genre = int(input("Какой жанр вас интересует?\n1 - Комедия\n2 - Фантастика\n3 - Ужасы\n"))

match genre:
    case 1:
        print("Один дома")
    case 2:
        print("Стражи Галактики")
    case 3:
        print("Астрал")
    case _:
        print("У нас нет такого жанра")

case _: обрабатывает случаи, когда ни один из предыдущих шаблонов не совпал. Также можно использовать case 1 | 2: для обработки нескольких значений в одном case.

Рассмотрели различные типы условных конструкций в Python: от простых проверок до сложных составных условий и новой конструкции match-case. Правильное использование условных конструкций — ключ к созданию читаемого, эффективного и надёжного кода.

Что будем искать? Например,программа