Как работает оператор if else в Python: примеры и разбор

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

Основы условного оператора if else в Python

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

Базовая конструкция

Синтаксис:

if условие:
    блок_кода
elif другое_условие:
    блок_кода
else:
    блок_кода

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

Пример проверки числа:

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

Результат: Число положительное

Типичные ошибки:

  • Забыто двоеточие (:) после условия.
  • Неверные отступы (блоки кода должны быть сдвинуты на 4 пробела или табуляцию).
  • Путаница оператора присваивания (=) и сравнения (==).

Как реализовать проверку нескольких условий с помощью if-elif-else?

Пример с оценками студента:

score = 85
if score >= 90:
    grade = "A"
elif score >= 75:
    grade = "B"
elif score >= 60:
    grade = "C"
else:
    grade = "D"
print(f"Оценка: {grade}")

Проблема: порядок условий имеет значение. Если написать if score >= 60 раньше, чем score >= 75, то оценка B никогда не будет получена.

Как использовать тернарный оператор (условное выражение) для короткой проверки?

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

x = 7
result = "Четное" if x % 2 == 0 else "Нечетное"
print(result)  # Нечетное

Ошибка: тернарный оператор не поддерживает elif, поэтому при множестве условий лучше использовать обычный if-elif-else.

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

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

age = 20
has_license = True
if age >= 18:
    if has_license:
        print("Можно водить машину")
    else:
        print("Нужно получить права")
else:
    print("Возраст не позволяет водить")

Проблема: глубокое вложение ухудшает читаемость. Рекомендуется использовать логические операторы (and, or) для объединения условий.

Как применить логические операторы and, or, not в условиях if?

Проверка ввода пользователя:

user_input = input("Введите число: ")
if user_input.isdigit() and int(user_input) > 0:
    print("Это положительное целое число")
elif not user_input.isdigit():
    print("Ввод не является числом")
else:
    print("Число не положительное")

Как обрабатывать исключения совместно с if?

Хотя try-except не заменяет if, можно использовать if для предварительной проверки:

x = "abc"
if x.isdigit():
    number = int(x)
else:
    print("Невозможно преобразовать в число")

Ошибка: при проверке типов не всегда можно полагаться на методы вроде isdigit(), лучше использовать блок try-except для надежности.

Расширенные примеры использования if else в Python

Ниже приведены подробные примеры с кодом и результатами выполнения.

Пример 1: Калькулятор с выбором операции

Пример
a = 10
b = 5
op = "/"

if op == "+":
    result = a + b
elif op == "-":
    result = a - b
elif op == "*":
    result = a * b
elif op == "/":
    if b != 0:
        result = a / b
    else:
        result = "Ошибка: деление на ноль"
else:
    result = "Неизвестная операция"

print(f"Результат: {result}")
Результат: 2.0

Пример 2: Определение високосного года

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

Пример 3: Проверка логина и пароля

Пример
login = "user123"
password = "secret"

if login == "user123" and password == "secret":
    print("Доступ разрешен")
elif login != "user123":
    print("Неверный логин")
else:
    print("Неверный пароль")
Доступ разрешен

Пример 4: Определение времени суток по часу

Пример
hour = 14
if 6 <= hour < 12:
    print("Утро")
elif 12 <= hour < 18:
    print("День")
elif 18 <= hour < 24:
    print("Вечер")
else:
    print("Ночь")
День

Пример 5: Тернарный оператор в списковом включении (list comprehension)

Пример
numbers = [1, 2, 3, 4, 5]
result = ["Четное" if n % 2 == 0 else "Нечетное" for n in numbers]
print(result)
['Нечетное', 'Четное', 'Нечетное', 'Четное', 'Нечетное']

Пример 6: Использование match-case (альтернатива if-elif в Python 3.10+)

Пример
value = 2
match value:
    case 1:
        print("Единица")
    case 2:
        print("Двойка")
    case _:
        print("Другое значение")
Двойка

В каждом примере показана типичная конструкция if-else. Важно: при использовании match-case следует помнить, что это отдельная конструкция, не заменяющая if, но упрощающая сопоставление с образцом.

программа с условным оператором if else в Python - comments

En
программа if else python (python)