Условия, циклы и 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 شريحة أخرى في النسخة الكاملة.
تُفتح الفيديو وجميع الشرائح والملاحظات والاختبارات والمرشد الذكي والمقابلة بعد تسجيل الدخول والاشتراك.
تسجيل الدخول أو إنشاء حساب الاشتراك الآنمحتوى الدرس
- Восемь вложенных 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-strings
- الوحدات والحزم في 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 и итоговый проект