Python
Общее описание
Python — это интерпретируемый, объектно-ориентированный, динамически типизированный язык программирования общего назначения. Он известен своей читаемостью кода, богатой стандартной библиотекой и широким сообществом разработчиков. Python поддерживает несколько парадигм программирования: процедурную, объектно-ориентированную и функциональную.
Основные особенности:
- Простой и понятный синтаксис
- Поддержка модулей и пакетов
- Автоматическое управление памятью
- Кроссплатформенность (Windows, Linux, macOS)
- Многозадачность и асинхронность
- Широкая экосистема библиотек и фреймворков
- Поддержка веб-разработки, системного программирования, ИИ, анализа данных и т.д.
Версии Python
Существует две основные ветки Python: 2.x и 3.x. На данный момент:
- Python 2 больше не поддерживается с 1 января 2020 года.
- Python 3 — активно развивается, рекомендуется к использованию.
Текущие стабильные версии:
Версия | Год выпуска | Особенности |
---|---|---|
3.6 | 2016 | f-strings, переменные с аннотацией |
3.7 | 2018 | dataclasses, улучшения typing |
3.8 | 2019 | walrus operator := , positional-only args |
3.9 | 2020 | словарные операторы | и |= |
3.10 | 2021 | structural pattern matching (match case ) |
3.11 | 2022 | Более быстрое выполнение, улучшенные ошибки |
3.12 | 2023 | Улучшения типизации, новые оптимизации |
Рекомендуется использовать последнюю стабильную версию (на момент написания — 3.12).
Установка Python
На Ubuntu/Debian:
sudo apt update
sudo apt install python3 python3-pip
Проверка версии:
python3 --version
pip3 --version
На CentOS/RHEL:
sudo yum install python3 python3-pip
или для более свежих версий:
sudo dnf install python3 python3-devel
На Windows:
Скачать установщик с https://www.python.org/downloads/windows/
Убедитесь, что вы отметили "Add to PATH" при установке.
Проверка:
python --version
pip --version
На macOS:
Через Homebrew:
brew install python
Средства управления версиями
1. pyenv
Позволяет устанавливать и переключать несколько версий Python на одной системе.
Установка (Linux/macOS):
curl https://pyenv.run | bash
Затем добавьте в ~/.bashrc
или ~/.zshrc
:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Пример использования:
pyenv install 3.12.0
pyenv global 3.12.0
2. asdf
Мультиязыковой менеджер версий, поддерживающий Python и другие языки.
Синтаксис Python
Hello World:
print("Hello, World!")
Комментарии:
# Это однострочный комментарий
"""
Это многострочный комментарий.
Он может содержать несколько строк.
"""
Переменные:
name = "Alice"
age = 30
is_admin = True
Условия:
if age >= 18:
print("Adult")
else:
print("Minor")
Циклы:
for i in range(5):
print(i)
while count < 10:
print(count)
count += 1
Функции:
def greet(name):
return f"Hello, {name}"
print(greet("Bob"))
Классы:
class Person:
def __init__(self, name):
self.name = name
def say_hello(self):
print(f"Hi, I'm {self.name}")
p = Person("John")
p.say_hello()
Работа с данными
Списки:
fruits = ["apple", "banana", "cherry"]
fruits.append("orange")
Кортежи:
coordinates = (10, 20)
x, y = coordinates
Словари:
person = {
"name": "Alice",
"age": 30
}
Множества:
unique_numbers = {1, 2, 3, 3} # {1, 2, 3}
Работа с файлами
with open("file.txt", "r") as file:
content = file.read()
print(content)
with open("output.txt", "w") as file:
file.write("New content")
Работа с JSON
import json
data = {"name": "Alice", "age": 30}
json_str = json.dumps(data)
loaded_data = json.loads(json_str)
Работа с базами данных
SQLite:
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
cursor.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)")
cursor.execute("INSERT INTO users (name) VALUES (?)", ("Alice",))
conn.commit()
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
PostgreSQL через psycopg2
:
import psycopg2
conn = psycopg2.connect(
dbname="test",
user="postgres",
password="pass",
host="localhost"
)
cur = conn.cursor()
cur.execute("SELECT * FROM users")
rows = cur.fetchall()
Виртуальные окружения
Для изоляции проектов используются виртуальные окружения:
python3 -m venv myenv
source myenv/bin/activate # Linux/macOS
myenv\Scripts\activate.bat # Windows
Выход:
deactivate
pip — менеджер пакетов
Установка пакета:
pip install requests
Удаление:
pip uninstall requests
Список установленных пакетов:
pip list
Сохранение зависимостей:
pip freeze > requirements.txt
Установка из файла:
pip install -r requirements.txt
Популярные библиотеки и фреймворки
Web:
- Flask — легковесный веб-фреймворк
- Django — мощный MVC-фреймворк с ORM, миграциями и админкой
- FastAPI — современный асинхронный фреймворк для создания API
Анализ данных:
- Pandas — работа с таблицами и временными рядами
- NumPy — численные вычисления
- Matplotlib / Seaborn — визуализация данных
Машинное обучение:
- Scikit-learn — классические алгоритмы ML
- TensorFlow / PyTorch — нейронные сети и глубокое обучение
- Keras — высокоуровневый API для работы с нейросетями
Автоматизация и скрипты:
- Requests — HTTP-запросы
- BeautifulSoup / lxml — парсинг HTML/XML
- Selenium — автоматизация браузера
Производительность и оптимизация
Инструменты:
- Cython — компиляция Python в C
- Numba — JIT-компилятор для числовых вычислений
- PyPy — альтернативный интерпретатор с JIT
- Asyncio — асинхронное программирование
- Multiprocessing — распараллеливание задач
Безопасность
Основные рекомендации:
- Использовать HTTPS при работе с сетью
- Не запускать код от непроверенных источников
- Хранить секреты в безопасных переменных окружения
- Использовать инструменты вроде
bandit
для проверки безопасности кода - Обновлять зависимости регулярно
Логирование и диагностика
Использование модуля logging
:
import logging
logging.basicConfig(level=logging.INFO)
logging.info("This is an info message")
Отладка:
pdb
— встроенный отладчик- PyCharm Debugger, VS Code Debugger
- Py-Spy — профайлер
Тестирование
Юнит-тестирование:
- unittest — встроенная библиотека
- pytest — популярный фреймворк с простым синтаксисом
Пример теста с pytest
:
def add(a, b):
return a + b
def test_add():
assert add(2, 2) == 4
Запуск:
pytest test_add.py
Документирование
Python поддерживает стиль документирования docstring, совместимый с Sphinx.
Пример:
def greet(name):
"""Greets the given person.
Args:
name (str): Name of the person to greet.
Returns:
str: Greeting message.
"""
return f"Hello, {name}"
Генерация документации:
pip install sphinx
sphinx-quickstart
Обновление Python
Обновление зависит от способа установки.
На Linux через pyenv:
pyenv install 3.12
pyenv global 3.12
На Windows: Скачайте новую версию с официального сайта и переустановите.
Поддержка и сообщество
Официальные источники:
- https://docs.python.org/3/ — официальная документация
- https://www.python.org