Python

Полная шпаргалка по 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" текст
int 42 целые числа
float 3.14 дробные числа
bool True логика
None None отсутствие значения
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, чтобы расширить контекст и сравнить подходы

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x