Условия, циклы и match/case в Python: управляем ходом программы
if/elif/else, while, for и range, break/continue, сопоставление с образцом match/case. Для опытных: где match реально удобнее цепочки if и что добавил 3.15 (унарный плюс в литеральных шаблонах).
- Писать ветвления и циклы
- Разбирать структуры данных через match/case
- Выбирать между if и match
Начало лекции
Восемь вложенных 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("Трат пока нет")
Трат пока нет
Полная лекция — по подписке
Ещё 11 слайдов в полной версии.
Видео, все слайды, конспект, тесты, AI-тьютор и собеседование открываются после входа и оформления подписки.
Войти или зарегистрироваться Оформить подпискуСодержание лекции
- Восемь вложенных if — и никто не понимает, что происходит
- if, elif, else: трекер проверяет лимит
- Истина и ложь в Python: что считается «пустым»
- Логика: and, or, not без сюрпризов
- Цикл for: пройтись по всем тратам
- while: повторять, пока условие верно
- Грабли: else у цикла — это не «если цикл не выполнился»
- match/case: разбираем команду по форме
- match по словарю и условие-охранник
- Миф: match — это просто switch из C
- ❓ Стоп-проверка: что вернёт parse("add Кофе")?
- 💡 Разбор: шаблон-список требует точной длины
- Что нового: шаблоны match с 3.10 по 3.15
- Итог: трекер решает и повторяет
Статьи по теме лекции
- Циклы и условия в Python: for, while, range, enumerate, break, if/elif и match/case
- Как скачать и установить Python на Windows, macOS и Linux: пошаговая инструкция
- Строки в Python: методы split, replace, strip, join, срезы и f-строки
- Модули и пакеты Python: import, pip, venv и библиотеки простыми словами
- Как изучить Python с нуля: план обучения для начинающих по шагам
Все лекции курса
- Python 3.15 с нуля и для опытных: что нового и как учить
- Python 3.15: установка, REPL и первый скрипт за десять минут
- Переменные, числа и строки в Python: f-строки и t-строки
- Условия, циклы и match/case в Python: управляем ходом программы
- Списки, кортежи, словари и множества: frozendict в Python 3.15
- Comprehensions в Python: распаковка * и ** внутри (PEP 798)
- Функции и аннотации типов в Python: от def до sentinel
- Ошибки и исключения в Python 3.15: читаем трейсбек и подсказки «Did you mean»
- Модули, пакеты и ленивые импорты в Python 3.15 (PEP 810)
- Файлы, JSON и CSV в Python: pathlib и UTF-8 по умолчанию
- Классы и dataclasses в Python: ООП без лишнего кода
- Асинхронность и потоки в Python: asyncio, TaskGroup и free-threading
- Профилирование Python 3.15: Tachyon вместо cProfile и итоговый проект