Теоретический минимум знаний по языку программирования Python
- Синтаксис в Python. Операторы потока управления, их приоритет. Роль отступа.
- PEP8: основные соглашения об оформлении программ.
- Циклы в Python. Цикл for и роль итерируемого объекта. Тип range.
- Иерархия типов объектов в Python. Динамическая типизация. Изменяемость объектов.
- Система памяти в Python. Имена и объекты. Сборщик мусора.
- Числовые типы данных в Python и их особенности.
- Основные действия со строками.
- Функция печати (основы), форматированные строки.
- Поверхностное (мелкое) и глубокое копирование объектов (на примере списков). Особенности оператора присваивания.
- Запрос ввода в консоли от пользователя
- Списки и кортежи: сходства и отличия. Индексация, взятие срезов, добавление, удаление и модификация элементов.
- Словари, ключи и значения. Получение значений. Проверка на наличие ключа. Итерация по словарю.
- Множества: динамические и замороженные.
- Функции в Python. Позиционные и именованные аргументы. Возвращение нескольких значений из функции.
- Функции высшего порядка.
- Аннотации типов в функциях
- Первая строка скрипта Python (shebang): #!
- Работа с файлами. Открытие на чтение и запись. Контекстный менеджер “with”. Итерация по файлам.
- Библиотека NumPy: массивы чисел, сходство и различия со списками. Векторизация вычислений.
- Библиотека Numpy: выборка условных подмножеств, булевские операции.
- Библиотека Matplotlib. Построение графиков функций.
- Скрипт, модули. Пространства имен.
- Интерфейс командной строки. Модуль argparse.
- Списковые включения
- Функции map, filter, zip, enumerate. Лямбда-функции.
- Итераторы. Привести примеры стандартных способов пробежаться по элементам списка.
- Генераторы. Отличие от итераторов. Ленивые вычисления.
- Декораторы: принцип работы и примеры.
- Принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм? Пояснить механизм реализации каждого из этих принципов в синтаксисе Python.
- Атрибуты класса и атрибуты экземпляра. Особенности объявления методов в классах. Статические методы.
- Наследование. Вызов метода суперкласса. Множественное наследование.
- Перегрузка специальных методов и операторов. Арифметические операторы.
- Исключения в Python. Перехват и обработка исключений: конструкции try/except и try/finally.
- Jupyter, основы работы, типы ячеек.
