Теоретический минимум знаний по языку программирования Python

  1. Синтаксис в Python. Операторы потока управления, их приоритет. Роль отступа.
  2. PEP8: основные соглашения об оформлении программ.
  3. Циклы в Python. Цикл for и роль итерируемого объекта. Тип range.
  4. Иерархия типов объектов в Python. Динамическая типизация. Изменяемость объектов.
  5. Система памяти в Python. Имена и объекты. Сборщик мусора.
  6. Числовые типы данных в Python и их особенности.
  7. Основные действия со строками.
  8. Функция печати (основы), форматированные строки.
  9. Поверхностное (мелкое) и глубокое копирование объектов (на примере списков). Особенности оператора присваивания.
  10. Запрос ввода в консоли от пользователя
  11. Списки и кортежи: сходства и отличия. Индексация, взятие срезов, добавление, удаление и модификация элементов.
  12. Словари, ключи и значения. Получение значений. Проверка на наличие ключа. Итерация по словарю.
  13. Множества: динамические и замороженные.
  14. Функции в Python. Позиционные и именованные аргументы. Возвращение нескольких значений из функции.
  15. Функции высшего порядка.
  16. Аннотации типов в функциях
  17. Первая строка скрипта Python (shebang): #!
  18. Работа с файлами. Открытие на чтение и запись. Контекстный менеджер “with”. Итерация по файлам.
  19. Библиотека NumPy: массивы чисел, сходство и различия со списками. Векторизация вычислений.
  20. Библиотека Numpy: выборка условных подмножеств, булевские операции.
  21. Библиотека Matplotlib. Построение графиков функций.
  22. Скрипт, модули. Пространства имен.
  23. Интерфейс командной строки. Модуль argparse.
  24. Списковые включения
  25. Функции map, filter, zip, enumerate. Лямбда-функции.
  26. Итераторы. Привести примеры стандартных способов пробежаться по элементам списка.
  27. Генераторы. Отличие от итераторов. Ленивые вычисления.
  28. Декораторы: принцип работы и примеры.
  29. Принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм? Пояснить механизм реализации каждого из этих принципов в синтаксисе Python.
  30. Атрибуты класса и атрибуты экземпляра. Особенности объявления методов в классах. Статические методы.
  31. Наследование. Вызов метода суперкласса. Множественное наследование.
  32. Перегрузка специальных методов и операторов. Арифметические операторы.
  33. Исключения в Python. Перехват и обработка исключений: конструкции try/except и try/finally.
  34. Jupyter, основы работы, типы ячеек.