Условия, циклы и match/case в Python: управляем ходом программы
if/elif/else, while, for и range, break/continue, сопоставление с образцом match/case. Для опытных: где match реально удобнее цепочки if и что добавил 3.15 (унарный плюс в литеральных шаблонах).
- Писать ветвления и циклы
- Разбирать структуры данных через match/case
- Выбирать между if и match
Início da aula
Восемь вложенных 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("Трат пока нет")
Трат пока нет
A aula completa é para assinantes
Mais 11 slides na versão completa.
O vídeo, todos os slides, anotações, testes, tutor de IA e entrevista ficam disponíveis após entrar e assinar.
Entrar ou cadastrar-se AssinarConteúdo da aula
- Восемь вложенных if — и никто не понимает, что происходит
- if, elif, else: трекер проверяет лимит
- Истина и ложь в Python: что считается «пустым»
- Логика: and, or, not без сюрпризов
- Цикл for: пройтись по всем тратам
- while: повторять, пока условие верно
- Грабли: else у цикла — это не «если цикл не выполнился»
- match/case: разбираем команду по форме
- match по словарю и условие-охранник
- Миф: match — это просто switch из C
- ❓ Стоп-проверка: что вернёт parse("add Кофе")?
- 💡 Разбор: шаблон-список требует точной длины
- Что нового: шаблоны match с 3.10 по 3.15
- Итог: трекер решает и повторяет
Artigos sobre esta aula
- Laços e condições em Python: for, while, range, enumerate, break, if/elif e match/case
- Como baixar e instalar o Python no Windows, macOS e Linux: passo a passo
- Strings em Python: métodos split, replace, strip, join, fatias e f-strings
- Módulos e pacotes em Python: import, pip, venv e bibliotecas em linguagem simples
- Como aprender Python do zero: plano de estudos para iniciantes passo a passo
Todas as aulas do curso
- 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 и итоговый проект