1. Быстрый старт: Синтаксис Python, структуры данных и отличия от C++ и PHP
Быстрый старт: Синтаксис Python, структуры данных и отличия от C++ и PHP
Добро пожаловать в курс «Python для сбора и обработки данных». Поскольку вы уже владеете C++, PHP и SQL, мы пропустим объяснения того, что такое переменная или цикл. Ваша задача — перенести существующие ментальные модели на рельсы Python и понять, почему этот язык стал стандартом де-факто в мире Data Science.
В этой статье мы разберем ключевые отличия синтаксиса, погрузимся в структуры данных, которые вы будете использовать 90% времени при обработке информации, и научимся писать «pythonic» код.
Философия и базовый синтаксис: Культурный шок
Первое, что бросается в глаза после C++ и PHP — это чистота кода. В Python нет фигурных скобок {} для обозначения блоков кода и точек с запятой ; для завершения инструкций (хотя технически ; допустима, ее использование считается дурным тоном).
Отступы как закон
В C++ и PHP отступы служат для читаемости. В Python отступы — это синтаксис. Блок кода определяется его смещением вправо (обычно 4 пробела).
Сравним условие:
PHP / C++:
Python:
Динамическая типизация и ссылки
Python — язык с сильной динамической типизацией.
TypeError.Важное отличие от C++: переменные в Python — это не коробки с данными, а ссылки (ярлыки) на объекты в памяти.
Пример:
В C++ аналогом было бы использование указателей или ссылок (std::vector<int>& b = a;). В Python это поведение по умолчанию для всех изменяемых типов.
Структуры данных для обработки информации
В Data Science правильный выбор структуры данных определяет эффективность алгоритма. Рассмотрим основные встроенные типы.
Списки (Lists)
Это аналог std::vector в C++ или индексированного массива в PHP. Списки изменяемы, упорядочены и могут хранить элементы разных типов (хотя на практике обычно хранят однотипные данные).
Киллер-фича Python при работе с данными — срезы (slicing).
Синтаксис среза: list[start:stop:step].
> Срезы создают копию данных, а не ссылку на оригинальный список (для простых списков).
Словари (Dictionaries)
Аналог ассоциативных массивов в PHP (T_{search}O(1)x * xxx$ четный».
Функции
Функции объявляются ключевым словом def. Важное отличие от C++: функция может возвращать несколько значений (технически это возвращается кортеж).
Аргументы
Python поддерживает именованные аргументы и значения по умолчанию, что делает вызовы функций очень читаемыми.
Работа с файлами (Context Managers)
В C++ вы должны помнить о закрытии файла или использовать RAII. В Python для этого есть оператор with`.
Это гарантирует освобождение ресурсов даже в случае возникновения исключения внутри блока.
Заключение
Переход с C++/PHP на Python для работы с данными требует смены парадигмы:
В следующей статье мы рассмотрим библиотеки NumPy и Pandas, которые превращают Python в мощнейший инструмент аналитики, сравнимый с MATLAB и R.