Краткий справочник по языку 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())
Работа с файловой системой и путями.
Сериализация и парсинг данных.
Даты, время, временные интервалы.
Регулярные выражения.
Counter, defaultdict, deque, namedtuple.
Эффективные итераторы и комбинаторика.
Декораторы, частичное применение, кеширование.
Аннотации типов для статической проверки.