Skip to content

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: Скачайте новую версию с официального сайта и переустановите.


Поддержка и сообщество

Официальные источники: