Python — чек-лист
Чек-лист самопроверки
- Что такое Python и для каких задач он предназначен?
- Какие версии Python существуют и чем отличается Python 2 от Python 3?
- Как устанавливается Python и как проверить его версию в терминале?
- Что такое интерпретатор Python и как он работает?
- Как запустить скрипт на Python из командной строки?
- Что такое REPL и как его использовать?
- Какие есть способы комментирования кода в Python?
- Как объявляются переменные и какие соглашения по именованию приняты (snake_case)?
- Какие примитивные типы данных есть в Python?
- В чём разница между изменяемыми и неизменяемыми объектами?
- Как работают ссылки и присваивание в Python?
- Что такое динамическая типизация и как она проявляется?
- Какие операторы сравнения и логические операторы поддерживаются?
- Как работает условный оператор
if/elif/else? - Какие циклы есть в Python и чем
forотличается отwhile? - Что делает ключевое слово
break,continue,elseв циклах? - Как объявляется функция и что такое параметры по умолчанию?
- Что такое
*argsи**kwargs? - Как возвращается значение из функции и что происходит при отсутствии
return? - Что такое локальная и глобальная область видимости?
- Как работает ключевое слово
globalиnonlocal? - Что такое лямбда-функции и где они применяются?
- Какие встроенные функции наиболее часто используются (
len,range,map,filter,zip,enumerate)? - Что такое списковые, словарные и генераторные выражения?
- Как работают исключения и как их обрабатывать (
try/except/finally)? - Как создавать собственные исключения?
- Что такое модуль и как его импортировать?
- В чём разница между
import module,from module import name,import module as alias? - Что такое пакет и как организована структура пакета?
- Что делает
if __name__ == "__main__":и чем прямой запуск отличается отimport? (if name == "main" — точка входа при запуске файла) - Как создаётся и используется виртуальное окружение?
- Что такое
pipи как управлять зависимостями проекта? - Как работает файл
requirements.txt? - Что такое класс и как создаются объекты в Python?
- Какие есть специальные методы (
__init__,__str__,__repr__,__eq__)? - Что такое наследование и как оно реализуется?
- Как работает множественное наследование и порядок разрешения методов (MRO)?
- Что такое композиция и когда её стоит использовать вместо наследования?
- Что такое свойства (
@property) и декораторы методов (@staticmethod,@classmethod)? - Как работают контекстные менеджеры и зачем нужен
with? - Что такое генераторы и как они отличаются от обычных функций?
- Как использовать
yieldи зачем нужны генераторные выражения? - Что такое декораторы и как писать свои?
- Как работает модуль
typingи зачем нужна аннотация типов? - Какие коллекции есть в стандартной библиотеке (
list,tuple,set,dict,deque,defaultdict,Counter)? - Как работает работа с файлами (
open, режимы'r','w','a','b','t')? - Что такое сериализация и как использовать
json,pickle? - Как работает многопоточность и многопроцессность в Python?
- Что такое GIL и как он влияет на производительность?
- Как реализуется асинхронное программирование (
async/await,asyncio)? - Какие инструменты используются для тестирования кода на Python (
unittest,pytest, doctests)?
Веб и фреймворки
- Зачем Flask, Django, FastAPI? (Первая программа на Flask, Первая программа на Django, Первая программа на FastAPI)
- Чем HTML-шаблон отличается от JSON API?
- Что такое ORM и миграции?
- Зачем
pytestиTestClient? (Тестирование на pytest) - JWT в FastAPI — зачем
Authorization: Bearer? (Первая программа на FastAPI)
Async и GUI
async/awaitиasyncio?- GIL — что ограничивает потоки?
- Tkinter — зачем
mainloop? (Первая программа на Tkinter) - Готовые примеры окон и виджетов? (Lab — 1124)
NumPy и данные
- Чем
listотличается отnumpy.ndarray? (337 — NumPy) - Что делает
np.dotдля двух одномерных векторов? - Зачем Pandas, если есть NumPy? (33 — анализ данных)