Условия, циклы и 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 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 и итоговый проект