Урок 47. Summary session 12

📁 Блок: Python Fundamentals / Повторение ⏱️ Время изучения: ~120 мин 🎯 Сложность: Повторение
#help #def #items #for #in #get #update #isinstance #if #return #print #add #set #split #count #factorial #or #while #copy #from #import #binary_search #len #tuple #str #raise #join #abs #sum #and #not #mkdir #pass

⚡ Кратко: что важно

Урок повторяет документацию функций (docstrings, help()), аннотации типов, работу со словарями, рекурсию, хвостовую рекурсию и глубокое копирование.

Что запомнить: docstring пишут в тройных кавычках сразу после заголовка функции; аннотации не влияют на выполнение, но помогают IDE и статическому анализу; у рекурсии всегда должен быть базовый случай; в Python хвостовая рекурсия не оптимизируется.

Топ-3 ошибки: забыть базовый случай в рекурсии; полагаться, что type hints вызовут ошибку при неверном типе; путать поверхностное и глубокое копирование вложенных коллекций.

О чём этот урок

Summary session 12 объединяет темы последних трёх уроков: документирование функций через docstrings, аннотации типов, работу со словарями, рекурсию и глубокое копирование. Это последнее повторение перед переходом к обработке ошибок.

Цели

  • Писать понятные docstrings и использовать help().
  • Добавлять аннотации типов к параметрам, возвращаемым значениям и переменным.
  • Преобразовывать словари: инвертировать ключи и значения, заменять значения по другому словарю.
  • Реализовывать рекурсивные функции: факториал, бинарный поиск, сумма цифр, обход вложенных списков.
  • Объяснять разницу между обычной и хвостовой рекурсией и почему хвостовую рекурсию в Python заменяют циклом.
  • Понимать, как работает deepcopy(), и реализовывать его рекурсивный аналог.

Что повторить заранее

🎯 Что изучать дальше