Применение условных конструкций в языке Python

Раздел: Управление потоком -> Условные конструкции

Основы условных операторов в Python

Наиболее распространённый и эффективный способ реализации ветвления в Python - это конструкция if-elif-else. Она позволяет последовательно проверять условия и выполнять соответствующий блок кода. Её универсальность и читаемость делают её основным инструментом для управления потоком.


    age = 18
    if age >= 18:
        status = "совершеннолетний"
    elif age >= 14:
        status = "подросток"
    else:
        status = "ребёнок"
    print(status)  # совершеннолетний
  

задания на if else python (задания на условный оператор if-else в python)

Каждое условие проверяется по порядку. Как только находится истинное, выполняется его блок, а остальные пропускаются. else выполняется, если ни одно из условий не истинно.

Почему программа может не работать?

  • Забыли двоеточие после условия: if age >= 18: - обязательно.
  • Путаница с отступами: все строки в блоке должны иметь одинаковый отступ (обычно 4 пробела).
  • Использование = вместо ==: первое - присваивание, второе - сравнение.
  • Порядок условий: проверяйте от более специфичных к общим (например, возраст 100 раньше, чем возраст > 18).

Как записать простое условие в одну строку?

Для коротких выражений удобен тернарный оператор x if condition else y. Он возвращает одно из двух значений в зависимости от условия.


    age = 17
    status = "взрослый" if age >= 18 else "несовершеннолетний"
    print(status)  # несовершеннолетний
  

условные операторы python примеры (условные операторы в python с примерами)

Использовать тернарный оператор стоит только для простых случаев, иначе снижается читаемость.

Ошибка: попытка использовать тернарный оператор для сложных ветвлений приводит к громоздким и трудночитаемым конструкциям. Лучше применять обычный if.

Как сравнить сразу несколько значений?

Логические операторы and, or, not позволяют комбинировать условия. Это упрощает код и избавляет от вложенных if.


    x = 10
    if x > 0 and x < 20:
        print("x в диапазоне (0, 20)")
  

условия на языке python (условные конструкции на языке python)

Можно использовать цепочки сравнений: if 0 < x < 20: - это более Pythonic.

Проблема: неправильное понимание приоритета операторов. Используйте скобки для явной группировки, если сомневаетесь.

Как реализовать множественный выбор без цепочки if-elif?

Начиная с Python 3.10 появился match-case. Он удобен для сравнения с константами и структурами данных.


    command = "start"
    match command:
        case "start":
            print("Запуск...")
        case "stop":
            print("Остановка...")
        case _:
            print("Неизвестная команда")
  

Python команда else (конструкция if-else в python)

В match можно использовать кортежи, списки, классы. Подстановка _ работает как else.

Типичные ошибки: забыть case _: или использовать break (не нужно, отрабатывает только один case). Также match не поддерживается в старых версиях Python.

Как обработать несколько возможных значений в одном case?

В match-case можно использовать логическое ИЛИ через символ |


    status_code = 404
    match status_code:
        case 200 | 201:
            print("Успех")
        case 404 | 500:
            print("Ошибка")
        case _:
            print("Другой статус")
  

Это компактная замена нескольким elif.

Расширенные примеры условных операторов

Пример

  # Проверка високосного года
  year = 2024
  if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
      print(f"{year} високосный")
  else:
      print(f"{year} не високосный")
  2024 високосный
Пример

  # Определение категории возраста с match-case
  age = 25
  match age:
      case n if n < 0:
          print("Некорректный возраст")
      case n if n < 13:
          print("Ребёнок")
      case n if n < 20:
          print("Подросток")
      case n if n < 65:
          print("Взрослый")
      case _:
          print("Пожилой")
  Взрослый
Пример

  # Использование all() для проверки множества условий
  nums = [5, 12, 3, 8]
  if all(x > 0 for x in nums):
      print("Все числа положительные")
  else:
      print("Есть неположительные числа")
  Все числа положительные
Пример

  # Комбинация тернарного оператора и lambda
  is_even = lambda x: "чётное" if x % 2 == 0 else "нечётное"
  print(is_even(7))  # нечётное
  print(is_even(10)) # чётное
  нечётное
  чётное
Пример

  # match-case с распаковкой кортежа
  point = (3, 0)
  match point:
      case (0, 0):
          print("Начало координат")
      case (x, 0):
          print(f"Точка на оси X в x={x}")
      case (0, y):
          print(f"Точка на оси Y в y={y}")
      case (x, y):
          print(f"Точка ({x}, {y}) не на осях")
  Точка на оси X в x=3
Пример

  # Определение типа треугольника по сторонам
  a, b, c = 5, 5, 8
  if a + b > c and a + c > b and b + c > a:
      if a == b == c:
          tri = "равносторонний"
      elif a == b or b == c or a == c:
          tri = "равнобедренный"
      else:
          tri = "разносторонний"
  else:
      tri = "не треугольник"
  print(f"Треугольник {tri}")
  Треугольник равнобедренный
Пример

  # Использование вложенных if для безопасного доступа к данным
  data = {"user": {"profile": {"age": 25}}}
  if "user" in data:
      if "profile" in data["user"]:
          if "age" in data["user"]["profile"]:
              age = data["user"]["profile"]["age"]
              print(f"Возраст: {age}")
          else:
              print("Возраст не указан")
      else:
          print("Профиль отсутствует")
  else:
      print("Пользователь не найден")
  Возраст: 25
Пример

  # Условное выражение для присваивания с side-effect
  def log(message):
      print(f"[LOG] {message}")
      return len(message)

  # Вызов функции только в случае истины
  result = log("Тест") if True else 0
  print(result)  # 4
  [LOG] Тест
  4

Условные операторы в Python с примерами - comments

En
условные операторы python примеры (python)