← На главную

📋 Python — Шпаргалки

Краткие конспекты по каждому разделу курса. Можно распечатать или сохранить как PDF.

📖 1. Введение в Python

Что такое Python?

Интерпретируемый, высокоуровневый язык с динамической типизацией. Создан Гвидо ван Россумом в 1991 г. Назван в честь Monty Python.

Области применения

Веб (Django, Flask), Data Science (NumPy, Pandas), ML (TensorFlow), автоматизация, игры (PyGame), боты, DevOps.

📚 2. Основы Python (уроки 3–8)

Переменные

x = 5
name = "Alice"
a = b = c = 0   # множественное присваивание
x, y = 1, 2     # распаковка

Типы данных

int    — 42, -7, 0
float  — 3.14, -0.5, 1e-3
str    — "hello", 'world'
bool   — True, False
NoneType — None

Ввод / вывод

print("Hello", name, sep=", ")
print(f"Привет, {name}!")
x = input("Введи число: ")  # всегда str!

Числовые операции

+ - * /      # базовые
//           # цело-численное деление
%            # остаток
**           # степень
abs(-5)      # 5
round(3.14, 1)  # 3.1

🔄 3. Приведение типов (урок 5)

Явное приведение

int("42")      # 42
float("3.14")  # 3.14
str(100)       # "100"
bool(0)        # False
bool("")       # False
bool("hi")     # True

Неявное приведение

5 + 3.0       # 8.0 (int → float)
print(42)      # "42" (int → str)
f"x={x}"       # строковое

🔀 4. Условия (уроки 9–10, 12–13)

if / elif / else

if x > 0:
    print("+")
elif x < 0:
    print("-")
else:
    print("0")

Логические операторы

and   # оба True
or    # хотя бы один
not   # инверсия
# Приоритет: not → and → or

Сравнения

== != > < >= <=
3 < x < 10      # цепочка
is / is not     # идентичность
in / not in     # вхождение

Тернарный оператор

x = "even" if n % 2 == 0 else "odd"

🔤 5. Строки (уроки 7, 14–16, 29)

Индексация и срезы

s = "Python"
s[0]      # 'P'
s[-1]     # 'n'
s[0:3]    # 'Pyt'
s[::2]    # 'Pto'
s[::-1]   # 'nohtyP'

Методы строк

s.upper()     # "HELLO"
s.lower()     # "hello"
s.strip()     # убрать пробелы
s.replace(a,b)# замена
s.find("x")   # индекс / -1
s.startswith("P")
s.endswith("n")

split / join

"a,b,c".split(",")    # ['a','b','c']
" ".join(["a","b"])  # "a b"
s.splitlines()       # по \n

f-строки

f"{name}: {score:.2f}"
f"{x=}"           # x=42

⚙️ 6. Функции (уроки 22–24)

Создание

def add(a, b):
    return a + b

def greet(name="Гость"):
    print(f"Привет, {name}!")

*args и **kwargs

def f(*args):   # кортеж
    for a in args: print(a)

def g(**kwargs): # словарь
    print(kwargs["key"])

Области видимости

x = 10          # глобальная
def f():
    global x    # доступ к глоб.
    x = 20

Аннотации типов

def add(a: int, b: int) -> int:
    return a + b

🔄 7. Циклы (уроки 17–21)

while

i = 0
while i < 5:
    print(i)
    i += 1

for

for x in [1, 2, 3]:
    print(x)

for ch in "abc":
    print(ch)

range()

range(stop)        # 0 … stop-1
range(start, stop)  # start … stop-1
range(start,stop,step)

break / continue

break      # выход из цикла
continue   # след. итерация

for i in range(5):
    if i == 2: continue
    if i == 4: break
    print(i)  # 0 1 3

for + else

for x in data:
    if found: break
else:
    print("Не найдено")

enumerate / zip

for i, v in enumerate(lst):
    print(i, v)

for a, b in zip(A, B):
    print(a, b)

🗂️ 8. Структуры данных (уроки 25–30)

Список (list) — изменяемый

lst = [1, 2, 3]
lst.append(4)       # [1,2,3,4]
lst.pop()           # удалить посл.
lst.insert(0, 0)    # по индексу
lst.remove(2)       # по значению
lst.sort()
lst.reverse()

Кортеж (tuple) — неизменяемый

t = (1, 2, 3)
t = 1, 2, 3         # скобки не обяз.
single = (1,)       # запятая нужна!
a, b, c = t         # распаковка

Множество (set) — уникальные

s = {1, 2, 3}
s.add(4)
s.remove(2)
s1 | s2    # объединение
s1 & s2    # пересечение
s1 - s2    # разность
s1 ^ s2    # симм. разность

Словарь (dict) — ключ:значение

d = {"a": 1, "b": 2}
d["c"] = 3          # добавить
d.get("x", 0)       # с умолч.
d.keys() / d.values()
d.items()           # пары (k,v)
for k, v in d.items(): …

Списочные выражения

[x**2 for x in range(5)]
[x for x in lst if x > 0]
[(k,v) for k,v in d.items()]

Срезы (любые послед-ти)

lst[start:stop:step]
lst[::-1]           # реверс
lst[:]              # копия

⚠️ 9. Обработка ошибок (урок 11)

try / except / finally

try:
    x = int(input())
except ValueError:
    print("Не число!")
except Exception as e:
    print(f"Ошибка: {e}")
else:
    print("OK:", x)
finally:
    print("Конец")

Вызов исключений

raise ValueError("Сообщение")
raise  # повторно в except

📁 10. Файлы и БД (уроки 32–34)

Чтение

with open("f.txt", "r") as f:
    text = f.read()
    lines = f.readlines()
    for line in f:
        print(line.strip())

Запись

with open("f.txt", "w") as f:
    f.write("Hello\n")
    f.writelines(lines)

with open("f.txt", "a") as f:
    f.write("append\n")

JSON

import json
with open("data.json", "r") as f:
    data = json.load(f)
with open("out.json", "w") as f:
    json.dump(data, f, indent=2, ensure_ascii=False)
# Строки: json.loads(s) / json.dumps(obj)

CSV

import csv
with open("data.csv", "r") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)
with open("out.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["Name", "Age"])

🧰 11. Модули (уроки 35–40)

Импорт

import math
from math import sqrt, pi
import math as m
from math import *

math

math.sqrt(16)     # 4.0
math.pi / math.e
math.ceil(3.1)    # 4
math.floor(3.9)   # 3
math.gcd(12, 8)   # 4
math.sin/cos/tan

random

random.randint(1, 6)   # целое [a,b]
random.random()        # float [0,1)
random.choice(lst)     # случ. элемент
random.shuffle(lst)    # на месте!
random.sample(lst, k)  # k уникальных
random.seed(42)        # повторяемость

datetime

from datetime import datetime, timedelta
now = datetime.now()
now.strftime("%d.%m.%Y %H:%M")
datetime.strptime(s, "%d.%m.%Y")
now + timedelta(days=7)
(now - old).days        # разница

itertools

from itertools import *
product("AB", repeat=2)  # дек.произв.
permutations("AB", 2)    # перестановки
combinations("AB", 2)    # сочетания
chain(a, b)              # объединение
cycle([1,2])             # беск. цикл
groupby(sorted_data, key)

Свои модули

# mymodule.py
def helper(): pass

# main.py
import mymodule
mymodule.helper()

if __name__ == "__main__":
    main()

🏗️ 12. ООП (уроки 41–42)

Класс и объект

class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        print(f"{self.name}: Гав!")

Наследование

class Puppy(Dog):
    def __init__(self, name, toy):
        super().__init__(name)
        self.toy = toy

    def bark(self):   # переопределение
        print("Тяф!")

Магические методы

__str__(self)     # str(obj)
__repr__(self)    # repr(obj)
__len__(self)     # len(obj)
__eq__(self, o)   # ==
__lt__(self, o)   # <

Инкапсуляция

_name     # protected (соглашение)
__secret  # name mangling → _Cls__secret
@property # декоратор геттера
@name.setter

🚀 13. Продвинутые темы (уроки 31, 43–50)

Lambda-функции

square = lambda x: x ** 2
add = lambda a, b: a + b
sorted(lst, key=lambda x: x.age)

Декораторы

def timer(fn):
    def wrapper(*a, **kw):
        start = time()
        res = fn(*a, **kw)
        print(time()-start)
        return res
    return wrapper

@timer
def slow(): ...

Генераторы

def gen():
    for i in range(5):
        yield i

(x**2 for x in range(5))  # genexpr
next(gen) / for x in gen()

Полезные встроенные

map(fn, iter)     # применить fn
filter(fn, iter)  # отфильтровать
sorted(iter, key=)
any(iter) / all(iter)
sum(iter) / max() / min()
type(x) / isinstance(x, T)
dir(obj) / help(obj)