Эта шпаргалка нужна не для чтения подряд, а для работы рядом с кодом. Откройте нужный раздел, скопируйте маленький пример, запустите его, поменяйте входные данные и проверьте вывод
Внутри собраны базовые конструкции Python, которые чаще всего нужны новичку: переменные, строки, числа, условия, циклы, списки, словари, функции, файлы, ошибки, модули и небольшой цельный пример
- Как запускать примеры
- Переменные, вывод и ввод
- Базовые типы данных
- Числа и арифметика
- Строки
- Условия
- Циклы
- Списки
- Кортежи и множества
- Словари
- Функции
- Comprehension: короткая сборка коллекций
- Файлы через pathlib
- Ошибки и исключения
- Модули, импорт и пакеты
- Мини-проект: очистить список задач и сохранить файл
- Что проверять, когда пример не работает
Как запускать примеры
Если 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, чтобы расширить контекст и сравнить подходы