Python: уроки, справочник и задачи

Условия в Python

Раздел: Основы Python · Обновлено 31.10.2026

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

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

Условия в Python
Содержание статьи
  1. Синтаксис if...elif...else
  2. Вложенные условия в Python
  3. Больше, чем if-else: истинность, цепочки и match
    1. Истинность значений
    2. Цепочки сравнений
    3. Условие в одну строку
    4. Оператор match для выбора по шаблону
    5. Частые ошибки в условиях
  4. Частые вопросы
    1. Сколько блоков elif можно использовать?
    2. Обязателен ли блок else?
    3. Как проверить несколько условий одновременно?
    4. Что делать, если в блоке if пока нечего писать?

Условия, сделать что то, при выполнении определенного условия. Не буду много писать, и побыстрее перейдем к практике.

n = 10 # Переменная со значением 10
if n > 5: #Задаем условие, если n больше 5 то:
    print(f"верно {n} больше 5") # Распечатай нам сообщение
else: # Иначе, то есть если вышеописанное условие неверное
    print(f"{n} меньше или равно 5") #Распечатай нам сообщение

Я надеюсь в приведенном выше примере, все довольно ясно описано. В вышеописанном примере, мы использовали только одно условие, мы так же можем проверять несколько условий.

Синтаксис if...elif...else

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

Начнем с того что оператор elif, это сокращение от else...if, то есть "Иначе если", именно благодаря этому оператору мы можем проверять несколько вариантов выражений. Все довольно просто, если условие для нашего if возвращает нам False, то Python проверяет состояние уже следующего за ним условия elif, если и тут условие возвращает нам False, то идем проверять следующее, либо переходим к блоку else, в зависимости от вашего условия. В конструкциях if...else, может быть только один блок else, но могут быть несколько блоков elif. Рассмотрим небольшой пример.

number = 20 #переменная со значением 20
if number > 0: # Если number больше 0
    print("Положительное число") # распечатай
elif number == 0: #Иначе, если number равен нулю
    print("Равна нулю") # Распечатай
else: # Иначе
    print("Отрицательное число") #Распечатай

Что бы было более понятно, я постарался отделить блоки условий друг от друга, а вам небольшое задание, сейчас написанный нами сценарий статичный, нет взаимодействия с пользователем, попробуйте добавить взаимодействие бы пользователь вводил число, и скрипт проводил вышеописанные сравнения. Обязательным условием в решении этого задания, является то, что бы пользователь мог вводить только числа. Попробуйте так же воспользоваться сервисом repl.it, иногда для меня лично удобнее быстро набросать на соседней вкладке браузера, если мой Pycharm не открыт.

Вложенные условия в Python

Вы смотрели фильм начало? Если нет я для вас оставлю ссылку на трейлер.

В общем то, логика работы вложенных условий чем то напоминают сюжет этого фильма, условия внутри условий! Попробуем более подробное разобраться с этой штукой! И так, представьте себе что внутри конструкций if...elif...else мы можем использовать дополнительные условия -конструкции, это и называется вложенными условиями, это как сон во сне, в фильме начало. В самом начале ничего не понятно, но стоит немного углубиться, и все становится на свои места. Пример работы:

number = int(input("Введите число:  ")) # Просим пользователя ввести число
if number >= 0: # если число больше или равно нулю
    if number == 0: # Вложенное условие, если число равно нулю
        print("Ноль") # Распечатай
    else: # Иначе (если число больше нуля)
        print("Положительное число") # Распечатай
else: #Иначе (если все вышеописанные условия не верны)
    print("Отрицательное число") # Распечатай

Следующий урок: Цикл For в Python

Больше, чем if-else: истинность, цепочки и match

Здесь разобраны такие пункты: истинность значений, цепочки сравнений, условие в одну строку, оператор match для выбора по шаблону, частые ошибки в условиях.

Истинность значений

В условии необязательно писать сравнение. Python считает ложными 0, 0.0, пустую строку, пустые список, кортеж, словарь и множество, а также None и False. Все остальное истинно.

name = input("Имя: ").strip()
if not name:
    print("Имя не введено")

items = []
if items:            # вместо if len(items) > 0
    print("Есть товары")

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

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

age = 25
if 18 <= age < 65:          # то же, что 18 <= age and age < 65
    print("Трудоспособный возраст")

Условие в одну строку

n = -7
sign = "положительное" if n > 0 else "не положительное"
print(sign)   # -> не положительное

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

Оператор match для выбора по шаблону

С Python 3.10 длинные цепочки elif, сравнивающие одно значение, можно заменить на match:

command = input("> ").split()

match command:
    case ["выход"]:
        print("До свидания")
    case ["привет", name]:
        print(f"Привет, {name}!")
    case ["сложить", a, b]:
        print(int(a) + int(b))
    case _:
        print("Неизвестная команда")

match сравнивает не только значения, но и структуру: длину списка, ключи словаря, тип объекта. Вариант case _ срабатывает, если ничего не подошло.

Учтите одну ловушку. Голое имя в шаблоне не сравнивается с переменной, а захватывает значение: case limit: сработает всегда и запишет в limit проверяемое значение. Чтобы сравнить с константой, используйте литерал, имя с точкой вроде Color.RED или условие-охранник case x if x > limit:. Для простого выбора по значению с двумя-тремя вариантами обычный if и elif по-прежнему понятнее и не требует Python 3.10.

Частые ошибки в условиях

НеправильноПочемуПравильно
if x = 5:= это присваивание, будет SyntaxErrorif x == 5:
if color == "red" or "blue":строка "blue" всегда истиннаif color in ("red", "blue"):
if value == None:сравнение с None делают через isif value is None:
if flag == True:лишнее сравнениеif flag:
Несколько if подряд вместо elifпроверяются все условия, могут сработать несколько ветокif ... elif ... else

Как условия работают внутри циклов, показано в статье Циклы и условия Python.

Частые вопросы

Несколько вопросов, которые часто задают начинающие, и ответы на них.

Сколько блоков elif можно использовать?

Сколько угодно, ограничений нет. Но если веток больше пяти-шести и все они сравнивают одно значение, удобнее словарь соответствий или оператор match.

Обязателен ли блок else?

Нет. Если при невыполнении условия ничего делать не нужно, else просто не пишут. Блок else может быть только один и всегда стоит последним.

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

Объедините их логическими операторами: and требует истинности всех условий, or хотя бы одного, not инвертирует результат. Для сложных выражений ставьте скобки, чтобы порядок проверки был очевиден.

Что делать, если в блоке if пока нечего писать?

Поставьте оператор pass. Пустой блок вызывает IndentationError, а pass ничего не делает и позволяет вернуться к коду позже.