1. База Python: синтаксис, типы данных, функции и модули
База Python: синтаксис, типы данных, функции и модули
Python ценят за читаемость и богатую стандартную библиотеку. Эта статья закладывает фундамент, на котором дальше будем строить навыки junior и постепенно двигаться к уровню middle: уверенная работа с типами данных, функциями, модульностью и стилем кода.
Полезные официальные источники:
Синтаксис и базовые правила
Отступы и блоки
В Python блоки кода задаются отступами, а не фигурными скобками.
Правило: внутри одного проекта используйте один стиль отступов (обычно 4 пробела).
Комментарии и документация
# комментарийПеременные и присваивание
Python — язык с динамической типизацией: тип хранится у значения, а не у имени переменной.
При этом Python — язык со строгой типизацией: он не будет автоматически складывать строку и число.
Операторы (коротко)
+, -, , /, //, %, *==, !=, <, <=, >, >=and, or, notВстроенные типы данных
Скаляры: числа, булевы значения, строки, None
Основные типы:
| Тип | Пример | Особенности |
|---|---|---|
| int | 42 | Целые числа произвольной точности |
| float | 3.14 | Вещественные числа с ограниченной точностью |
| bool | True, False | Подтип int: True == 1, False == 0 |
| str | "hello" | Неизменяемая последовательность Unicode-символов |
| NoneType | None | Отсутствие значения (часто: “не задано”) |
Строки часто форматируют через f-строки:
Коллекции: list, tuple, dict, set
| Тип | Пример | Упорядоченность | Изменяемость | Типичный кейс |
|---|---|---|---|---|
| list | [1, 2, 3] | Да | Да | Набор элементов, который нужно менять |
| tuple | (1, 2) | Да | Нет | Фиксированная структура (например, координаты) |
| dict | {"a": 1} | Да (по вставке) | Да | Отображение ключ → значение |
| set | {1, 2, 3} | Нет | Да | Уникальные элементы, проверки принадлежности |
#### Индексация и срезы
Работают у последовательностей (str, list, tuple).
#### Мутабельность и частые ошибки
Списки и словари изменяемые.
Это не “магия”, а следствие того, что a и b ссылаются на один объект.
#### Приведение типов
Иногда нужно преобразовать тип явно:
Truthy/Falsy: как Python понимает “истину”
В условиях (if, while) Python приводит значения к bool по правилам:
False, None, 0, 0.0, "", [], {}, set()Управляющие конструкции
Ветвления
Циклы
for итерируется по последовательности или любому итерируемому объекту.
while работает, пока условие истинно.
Полезные управляющие слова:
break — прервать циклcontinue — перейти к следующей итерацииГенераторы коллекций (comprehensions)
Это компактный способ создавать списки/множества/словари.
Функции
Функции позволяют:
Объявление и возврат значения
Если return не указан, функция возвращает None.
Параметры: позиционные, именованные, значения по умолчанию
Важное правило: значения по умолчанию вычисляются один раз при определении функции. Поэтому нельзя использовать мутабельные значения по умолчанию (например, []).
Правильно:
args и *kwargs
*args собирает лишние позиционные аргументы в кортеж**kwargs собирает лишние именованные аргументы в словарьОбласть видимости (scope)
Переменные внутри функции — локальные.
Аннотации типов (для читаемости)
Аннотации помогают IDE и линтерам, но сами по себе не “заставляют” Python проверять типы во время выполнения.
Документация по аннотациям: Модуль typing
Ошибки и исключения (база)
Когда что-то идёт не так, Python выбрасывает исключение (например, ValueError, TypeError, KeyError). Их можно обработать.
Рекомендация: ловите конкретные исключения, а не просто except Exception без необходимости.
Модули и импорт
Что такое модуль
Модуль — это файл *.py. Его можно импортировать и переиспользовать код.
Пример структуры:
Использование:
Варианты импорта
Рекомендация: избегайте from module import *, потому что это ухудшает читаемость и может перезаписывать имена.
Пакеты
Пакет — это директория с Python-кодом, которую Python воспринимает как набор модулей. В современном Python пакет может быть и без __init__.py, но в реальных проектах он часто присутствует.
!Дерево проекта и точки импорта, чтобы увидеть разницу между модулем и пакетом
__name__ == "__main__"
Этот блок позволяет запускать модуль как скрипт и при этом безопасно импортировать его в другие места.
Стандартная библиотека
Python поставляется с множеством модулей “из коробки”. Часто используемые:
pathlib — работа с путямиdatetime — даты и времяjson — JSONre — регулярные выраженияКаталог модулей: Стандартная библиотека Python
Стиль кода: минимум, который нужен сразу
Хороший стиль ускоряет ревью и снижает количество ошибок.
snake_casePascalCaseUPPER_CASEОсновные рекомендации: PEP 8 — стиль кода
Итоги
Теперь у вас есть база:
В следующих материалах курса будем усиливать фундамент: разберём работу с файлами, исключениями глубже, объектно-ориентированное программирование и практики разработки, которые ожидают от middle.