Fragmento de la lección

Условия, циклы и match/case в Python: управляем ходом программы

if/elif/else, while, for и range, break/continue, сопоставление с образцом match/case. Для опытных: где match реально удобнее цепочки if и что добавил 3.15 (унарный плюс в литеральных шаблонах).

условие цикл match/case шаблон
Lo que aprenderás en esta lección
  • Писать ветвления и циклы
  • Разбирать структуры данных через match/case
  • Выбирать между if и match

Inicio de la lección

Восемь вложенных if — и никто не понимает, что происходит

  • Типичный разбор команд: if cmd == ... elif ... elif ...
  • С 3.10 есть match/case — разбор по форме данных
  • В 3.15: унарный плюс в литеральных шаблонах

Откройте любой старый скрипт, который принимает команды от пользователя, и вы почти наверняка увидите лесенку: если команда такая — делаем это, иначе если такая — делаем то, и так восемь раз, с разбиением строки, проверкой длины и индексами. Через полгода в этой лесенке не разберётся даже автор. Сегодня мы пройдём весь путь: от простого условия до конструкции match, которая превращает такую лесенку в аккуратную таблицу случаев.

if, elif, else: трекер проверяет лимит

  • Двоеточие в конце строки условия обязательно
  • Тело блока — отступ 4 пробела
  • Сравнения: == != < > <= >=

Начнём с самого простого решения: превысили мы дневной лимит или нет. Слово if проверяет условие, и если оно истинно, выполняется блок под ним. Elif — это «а иначе, если», else — «во всех остальных случаях». Обратите внимание на отступы: в Python именно они показывают, какие строки входят в блок. Никаких фигурных скобок, как в других языках, — сдвинули строку на четыре пробела, и она внутри условия.

limit = 1000
amount = 1250

if amount > limit:
    print("Превышен лимит на", amount - limit)
elif amount == limit:
    print("Ровно лимит")
else:
    print("В пределах лимита")

Истина и ложь в Python: что считается «пустым»

  • Ложны: 0, 0.0, "", [], {}, None, False
  • Всё остальное — истинно
  • bool("0") → True: непустая строка

В условие можно подставить не только сравнение, но и любое значение. Python сам решит, считать его истиной или ложью. Правило запоминается легко: всё пустое и нулевое — ложь. Ноль, пустая строка, пустой список, специальное значение None. Всё остальное — истина. Поэтому вместо громоздкой проверки длины списка опытные пишут просто «если список». Одна оговорка: строка с символом ноль — непустая, значит, истинная.

>>> bool(0), bool(""), bool([])
(False, False, False)
>>> bool("0")        # непустая строка!
True
>>> expenses = []
>>> if not expenses:
...     print("Трат пока нет")
Трат пока нет

La lección completa es de suscripción

11 diapositivas más en la versión completa.

El vídeo, todas las diapositivas, apuntes, tests, tutor de IA y entrevista se desbloquean al iniciar sesión y suscribirte.

Iniciar sesión o registrarse Suscribirse

Contenido de la lección

  1. Восемь вложенных if — и никто не понимает, что происходит
  2. if, elif, else: трекер проверяет лимит
  3. Истина и ложь в Python: что считается «пустым»
  4. Логика: and, or, not без сюрпризов
  5. Цикл for: пройтись по всем тратам
  6. while: повторять, пока условие верно
  7. Грабли: else у цикла — это не «если цикл не выполнился»
  8. match/case: разбираем команду по форме
  9. match по словарю и условие-охранник
  10. Миф: match — это просто switch из C
  11. ❓ Стоп-проверка: что вернёт parse("add Кофе")?
  12. 💡 Разбор: шаблон-список требует точной длины
  13. Что нового: шаблоны match с 3.10 по 3.15
  14. Итог: трекер решает и повторяет

Artículos sobre esta lección

Todas las lecciones del curso

  1. Python 3.15 с нуля и для опытных: что нового и как учить
  2. Python 3.15: установка, REPL и первый скрипт за десять минут
  3. Переменные, числа и строки в Python: f-строки и t-строки
  4. Условия, циклы и match/case в Python: управляем ходом программы
  5. Списки, кортежи, словари и множества: frozendict в Python 3.15
  6. Comprehensions в Python: распаковка * и ** внутри (PEP 798)
  7. Функции и аннотации типов в Python: от def до sentinel
  8. Ошибки и исключения в Python 3.15: читаем трейсбек и подсказки «Did you mean»
  9. Модули, пакеты и ленивые импорты в Python 3.15 (PEP 810)
  10. Файлы, JSON и CSV в Python: pathlib и UTF-8 по умолчанию
  11. Классы и dataclasses в Python: ООП без лишнего кода
  12. Асинхронность и потоки в Python: asyncio, TaskGroup и free-threading
  13. Профилирование Python 3.15: Tachyon вместо cProfile и итоговый проект