Python Шпаргалки

Краткий справочник по языку Python: синтаксис, типы данных, конструкции, примеры кода

Сборник памяток по Python — для тех, кто учит язык или хочет быстро вспомнить нужную конструкцию. Все примеры работают на Python 3.10+.

Основы синтаксиса

Python — высокоуровневый интерпретируемый язык с динамической типизацией. Отступы являются частью синтаксиса.

# Переменные и базовые типы
x = 42              # int
pi = 3.14           # float
name = "Python"     # str
flag = True         # bool
nothing = None      # NoneType

# Условные конструкции
if x > 10:
    print("много")
elif x == 10:
    print("ровно")
else:
    print("мало")

# Циклы
for i in range(5):
    print(i)

while x > 0:
    x -= 1

Строки

Строки в Python неизменяемы. F-строки — современный способ форматирования.

s = "Hello, World"
s.lower()           # 'hello, world'
s.upper()           # 'HELLO, WORLD'
s.split(",")        # ['Hello', ' World']
s.replace("o", "0") # 'Hell0, W0rld'
len(s)              # 12

# F-строки
name = "Лео"
age = 25
print(f"{name}, {age} лет")
print(f"{3.14159:.2f}")  # '3.14'

# Срезы
s[0:5]    # 'Hello'
s[-5:]    # 'World'
s[::-1]   # переворот

Коллекции

Списки

lst = [1, 2, 3]
lst.append(4)        # [1, 2, 3, 4]
lst.pop()            # 4, lst = [1, 2, 3]
lst.insert(0, 0)     # [0, 1, 2, 3]
sorted([3, 1, 2])    # [1, 2, 3]

# Списковые включения
squares = [x**2 for x in range(10)]
evens = [x for x in range(20) if x % 2 == 0]

Словари

d = {"name": "Alice", "age": 30}
d["email"] = "a@b.c"
d.get("phone", "не указан")
d.keys(); d.values(); d.items()

# Словарные включения
sq = {x: x**2 for x in range(5)}

Множества и кортежи

s = {1, 2, 3}
s.add(4); s.discard(2)
{1,2,3} | {3,4}   # объединение
{1,2,3} & {2,3,4} # пересечение

t = (1, 2, 3)     # неизменяемый

Функции

def greet(name, greeting="Привет"):
    """Документация функции."""
    return f"{greeting}, {name}!"

# *args и **kwargs
def total(*args, **kwargs):
    return sum(args) + sum(kwargs.values())

# Лямбды
square = lambda x: x ** 2

# Аннотации типов
def add(a: int, b: int) -> int:
    return a + b

Классы

class Animal:
    def __init__(self, name: str):
        self.name = name

    def speak(self) -> str:
        return "..."

class Dog(Animal):
    def speak(self) -> str:
        return f"{self.name} говорит: Гав!"

# Dataclasses
from dataclasses import dataclass

@dataclass
class Point:
    x: float
    y: float

p = Point(1.0, 2.0)
print(p)  # Point(x=1.0, y=2.0)

Обработка ошибок

try:
    result = 10 / 0
except ZeroDivisionError as e:
    print(f"Деление на ноль: {e}")
except (TypeError, ValueError):
    print("Другая ошибка")
else:
    print("Без ошибок")
finally:
    print("Выполнится всегда")

# Своё исключение
class MyError(Exception):
    pass

raise MyError("что-то пошло не так")

Работа с файлами

# Чтение
with open("file.txt", "r", encoding="utf-8") as f:
    content = f.read()

# Построчно
with open("file.txt") as f:
    for line in f:
        print(line.strip())

# Запись
with open("out.txt", "w", encoding="utf-8") as f:
    f.write("Привет\n")

# JSON
import json
data = {"name": "Лео", "age": 25}
with open("data.json", "w") as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

# Пути
from pathlib import Path
p = Path("data") / "file.txt"
p.exists(); p.is_file()

Асинхронность

import asyncio

async def fetch(url):
    await asyncio.sleep(1)
    return f"данные с {url}"

async def main():
    results = await asyncio.gather(
        fetch("a.com"),
        fetch("b.com"),
        fetch("c.com"),
    )
    print(results)

asyncio.run(main())

Полезные модули стандартной библиотеки

os, pathlib

Работа с файловой системой и путями.

json, csv

Сериализация и парсинг данных.

datetime

Даты, время, временные интервалы.

re

Регулярные выражения.

collections

Counter, defaultdict, deque, namedtuple.

itertools

Эффективные итераторы и комбинаторика.

functools

Декораторы, частичное применение, кеширование.

typing

Аннотации типов для статической проверки.

Популярные сторонние библиотеки