Полная шпаргалка по Python

Эта шпаргалка нужна не для чтения подряд, а для работы рядом с кодом. Откройте нужный раздел, скопируйте маленький пример, запустите его, поменяйте входные данные и проверьте вывод

Внутри собраны базовые конструкции Python, которые чаще всего нужны новичку: переменные, строки, числа, условия, циклы, списки, словари, функции, файлы, ошибки, модули и небольшой цельный пример

Как запускать примеры

Если Python уже установлен, проверьте версию и запустите файл

python3 --version
python3 main.py

В интерактивном режиме удобно быстро проверять одну строку

python3

В файле main.py код обычно читается проще, чем в консоли. Для учебных примеров достаточно создать файл, вставить блок кода и запустить его командой выше

Переменные, вывод и ввод

Переменная хранит значение под понятным именем. print() выводит результат, input() читает строку от пользователя

name = "Анна"
age = 28

print(name)
print(f"{name}, возраст: {age}")

input() всегда возвращает строку, даже если человек ввел число

age_text = input("Возраст: ")
age = int(age_text)

print(age + 1)
ПриемПримерКогда нужен
вывести значениеprint(name)проверить результат
строка с переменнойf"{name}: {age}"собрать понятный текст
ввод пользователяinput("Имя: ")получить значение с клавиатуры
преобразование в числоint("42")считать введенное число

Базовые типы данных

Тип определяет, какие операции можно делать со значением

ТипПримерДля чего нужен
str"Python"текст
int42целые числа
float3.14дробные числа
boolTrueлогика
NoneNoneотсутствие значения
list["a", "b"]изменяемый список
tuple(10, 20)фиксированная группа
dict{"name": "Анна"}значения по ключам
set{"python", "sql"}уникальные значения

Проверить тип можно через type() или isinstance()

value = ["python", "sql"]

print(type(value))
print(isinstance(value, list))

Числа и арифметика

a = 10
b = 3

print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** b)
ОператорЧто делает
+сложение
-вычитание
*умножение
/деление с дробной частью
//целая часть деления
%остаток от деления
**степень

Если число пришло строкой, его нужно преобразовать

price = "1200"
quantity = "3"

total = int(price) * int(quantity)
print(total)

Строки

Строки часто нужно очищать, приводить к одному регистру, разбивать и собирать обратно

text = "  Python, SQL, HTML  "

clean = text.strip()
lower = clean.lower()
parts = [part.strip() for part in clean.split(",")]

print(clean)
print(lower)
print(parts)
МетодПримерЧто делает
strip()" text ".strip()убирает пробелы по краям
lower()"Python".lower()делает нижний регистр
upper()"py".upper()делает верхний регистр
replace()"a-b".replace("-", " ")заменяет фрагмент
split()"a,b".split(",")разбивает строку
join()", ".join(items)собирает строки
startswith()text.startswith("http")проверяет начало
in"py" in textищет подстроку

Полезный пример очистки списка строк

raw = [" Python ", "", "SQL", " python "]
clean = []

for item in raw:
    item = item.strip().lower()
    if item and item not in clean:
        clean.append(item)

print(clean)

Условия

Условие выбирает, какой код выполнить

score = 75

if score >= 90:
    print("отлично")
elif score >= 60:
    print("зачет")
else:
    print("нужно повторить")
ОператорЗначение
==равно
!=не равно
>больше
<меньше
>=больше или равно
<=меньше или равно
andоба условия истинны
orхотя бы одно условие истинно
notотрицание

Проверка пустых значений в Python обычно короткая

items = []

if not items:
    print("список пуст")

Циклы

for перебирает элементы. while повторяет код, пока условие истинно

skills = ["python", "sql", "html"]

for skill in skills:
    print(skill)

Когда нужен номер, используйте enumerate

tasks = ["код", "тест", "публикация"]

for number, task in enumerate(tasks, start=1):
    print(number, task)

range() помогает повторить действие нужное количество раз

for number in range(1, 4):
    print(number)

break останавливает цикл, continue переходит к следующей итерации

for item in ["", "python", "sql"]:
    if not item:
        continue
    if item == "sql":
        break
    print(item)

Списки

Список хранит значения в порядке и умеет меняться

items = ["python", "sql"]

items.append("html")
items.insert(0, "git")
items.remove("sql")

print(items)
print(items[0])
print(items[-1])
print(len(items))
ОперацияПримерЧто делает
добавить в конецitems.append("html")один элемент
добавить несколькоitems.extend(["css", "js"])расширяет список
вставитьitems.insert(0, "git")добавляет по индексу
удалить по значениюitems.remove("sql")первое совпадение
удалить по индексуitems.pop(0)удаляет и возвращает
длинаlen(items)количество элементов
срезitems[:3]часть списка

Список удобно фильтровать через comprehension

numbers = [1, 2, 3, 4, 5]
even = [number for number in numbers if number % 2 == 0]

print(even)

Сортировка бывает двух видов: sorted() возвращает новый список, .sort() меняет исходный

numbers = [3, 1, 2]

print(sorted(numbers))
print(numbers)

numbers.sort()
print(numbers)

Кортежи и множества

Кортеж похож на список, но обычно используется для фиксированной группы значений

point = (10, 20)
x, y = point

print(x, y)

Множество хранит уникальные элементы

skills = ["python", "sql", "python"]
unique_skills = set(skills)

print(unique_skills)
ТипКогда использовать
listданные нужно менять, добавлять, удалять, сортировать
tupleфиксированная пара или группа значений
setнужно убрать повторы или проверить уникальность

Словари

Словарь хранит данные по ключам. Это не одна запись для галочки, а один из главных типов Python для реальных данных

user = {
    "name": "Анна",
    "city": "Казань",
    "age": 28,
}

print(user["name"])
print(user.get("email", "email не указан"))

Добавление и изменение выглядят одинаково

user["email"] = "anna@example.com"
user["city"] = "Москва"

print(user)

Перебор ключей и значений

for key, value in user.items():
    print(key, value)

Список словарей встречается в таблицах, API, парсерах и маленьких приложениях

users = [
    {"id": 1, "name": "Анна", "active": True},
    {"id": 2, "name": "Илья", "active": False},
]

active_users = [user for user in users if user["active"]]
print(active_users)

Словарь по id помогает быстро находить запись

users_by_id = {user["id"]: user for user in users}

print(users_by_id[1]["name"])

Подсчет повторов через словарь

cities = ["Казань", "Москва", "Казань", "Самара"]
counts = {}

for city in cities:
    counts[city] = counts.get(city, 0) + 1

print(counts)
ПриемПримерКогда нужен
прочитать обязательный ключuser["name"]ключ точно должен быть
прочитать необязательный ключuser.get("email", "")поле может отсутствовать
проверить ключ"city" in userважно наличие ключа
получить парыuser.items()перебор ключ-значение
получить ключиuser.keys()список полей
получить значенияuser.values()только значения

Функции

Функция собирает повторяемое действие под именем

def normalize(text):
    return text.strip().lower()

print(normalize(" Python "))

Аргументы могут иметь значения по умолчанию

def greet(name, prefix="Привет"):
    return f"{prefix}, {name}"

print(greet("Анна"))
print(greet("Анна", "Добрый день"))

Функция может возвращать несколько значений через кортеж

def get_bounds(numbers):
    return min(numbers), max(numbers)

low, high = get_bounds([5, 1, 9])
print(low, high)

Comprehension: короткая сборка коллекций

Comprehension помогает собрать список, множество или словарь из других данных

words = ["python", "sql", "html"]

lengths = [len(word) for word in words]
unique_lengths = {len(word) for word in words}
words_by_length = {word: len(word) for word in words}

print(lengths)
print(unique_lengths)
print(words_by_length)

Если внутри много условий и проверок, обычный цикл часто читается лучше

rows = ["tea:120", "bad row", "coffee:250"]
prices = {}

for row in rows:
    if ":" not in row:
        continue
    name, price = row.split(":", 1)
    prices[name] = int(price)

print(prices)

Файлы через pathlib

pathlib.Path удобен для чтения и записи файлов

from pathlib import Path

path = Path("notes.txt")
path.write_text("первая строка\nвторая строка", encoding="utf-8")

text = path.read_text(encoding="utf-8")
print(text)

Прочитать файл строками и убрать пустые строки

from pathlib import Path

path = Path("notes.txt")

if path.exists():
    lines = [
        line.strip()
        for line in path.read_text(encoding="utf-8").splitlines()
        if line.strip()
    ]
else:
    lines = []

print(lines)

Записать список строк

from pathlib import Path

items = ["python", "sql", "html"]
Path("skills.txt").write_text("\n".join(items), encoding="utf-8")

Ошибки и исключения

Ошибки лучше обрабатывать там, где понятно, что делать дальше

raw = "42"

try:
    value = int(raw)
except ValueError:
    value = 0

print(value)

Проверка файла перед чтением часто понятнее, чем ловить ошибку

from pathlib import Path

path = Path("data.txt")

if path.exists():
    print(path.read_text(encoding="utf-8"))
else:
    print("файл не найден")

raise используют, когда нужно явно остановить программу с понятной причиной

def require_key(data, key):
    if key not in data:
        raise KeyError(f"Нет обязательного ключа: {key}")
    return data[key]

Модули, импорт и пакеты

Импорт подключает готовый код

from pathlib import Path
import random

print(Path.cwd())
print(random.choice(["python", "sql", "html"]))

Частые команды для проекта

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install requests
python3 -m pip freeze
КомандаЗачем нужна
python3 -m venv .venvсоздать окружение
source .venv/bin/activateвключить окружение
python3 -m pip install ...установить пакет
python3 -m pip freezeпосмотреть зависимости

Мини-проект: очистить список задач и сохранить файл

Этот пример связывает основные блоки шпаргалки: строки, списки, словари, функции, файл, условие и цикл

from pathlib import Path

def normalize_task(text):
    return text.strip().lower()

def build_tasks(raw_tasks):
    tasks = []
    seen_titles = set()

    for raw_task in raw_tasks:
        title = normalize_task(raw_task)
        if not title or title in seen_titles:
            continue

        tasks.append({
            "title": title,
            "status": "todo",
        })
        seen_titles.add(title)

    return tasks

raw_tasks = [" Написать код ", "", "проверить форму", "написать код"]
tasks = build_tasks(raw_tasks)

lines = []
for number, task in enumerate(tasks, start=1):
    lines.append(f"{number}. {task['title']} — {task['status']}")

Path("tasks.txt").write_text("\n".join(lines), encoding="utf-8")
print("\n".join(lines))

Что здесь происходит:

  • normalize_task очищает строку и приводит ее к одному регистру
  • build_tasks убирает пустые строки и повторы
  • set помогает быстро проверять повторяющиеся задачи
  • список tasks хранит словари с полями задачи
  • enumerate добавляет номера для вывода
  • Path.write_text сохраняет результат в файл

Что проверять, когда пример не работает

СимптомЧто проверить
NameErrorимя переменной написано одинаково везде
TypeErrorтип значения подходит для операции
ValueErrorстрока реально превращается в число
KeyErrorключ есть в словаре
IndexErrorиндекс не выходит за длину списка
файл не найденпуть и текущая папка верные

Хорошая шпаргалка по Python должна помогать быстро вернуться к действию. Если вы нашли нужный раздел, запустили пример, изменили данные и поняли ошибку, материал работает

По этой теме полезно отдельно посмотреть Составьте еженедельное расписание занятий, чтобы расширить контекст и сравнить подходы

По этой теме полезно отдельно посмотреть Аннотации типов для декораторов в Python, чтобы расширить контекст и сравнить подходы

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x