Шпаргалка по Python: синтаксис, команды и встроенные функции в таблицах
Синтаксис Python строится на отступах вместо фигурных скобок: блок после двоеточия сдвигается на 4 пробела. Основа — переменные без объявления типа, условия if/elif/else, циклы for и while, функции def, а также встроенные функции print, len, range, input, type и методы строк, списков и словарей.
Эта шпаргалка по Python собирает на одной странице всё, что нужно держать под рукой в первые месяцы: синтаксис Python, циклы, встроенные функции, методы строк, списков и словарей и команды терминала. Каждая таблица — короткий справочник с рабочими примерами, которые можно сразу вставить в REPL.
Основы синтаксиса Python
Главная особенность языка — блоки задаются отступами, а не скобками. После строки с двоеточием (if, for, def, class) следующие строки сдвигаются на 4 пробела. Смешивать табы и пробелы нельзя — получите IndentationError.
| Конструкция | Пример | Пояснение |
|---|---|---|
| Комментарий | # текст | всё после # до конца строки игнорируется |
| Переменная | age = 25 | тип не объявляется, его определяет значение |
| Множественное присваивание | a, b = 1, 2 | распаковка; обмен значений: a, b = b, a |
| Вывод | print("Привет", name) | аргументы разделяются пробелом |
| Ввод | s = input("Имя: ") | всегда возвращает строку |
| f-строка | f"{name}: {price:.2f}" | подстановка выражений и формат |
| Аннотация типа | count: int = 0 | подсказка для IDE и проверщиков, не проверяется при запуске |
| Пустой блок | pass | заглушка, где синтаксис требует тело |
| Импорт | from math import sqrt | подключение модуля или имени из него |
Типы данных
| Тип | Литерал | Изменяемый |
|---|---|---|
int | 42, 1_000_000 | нет |
float | 3.14, 1e-3 | нет |
bool | True, False | нет |
str | "текст", 'текст', """много строк""" | нет |
list | [1, 2, 3] | да |
tuple | (1, 2), (1,) | нет |
dict | {"a": 1} | да |
set | {1, 2}, пустое — set() | да |
NoneType | None | — |
Операторы
| Группа | Операторы | Пример → результат |
|---|---|---|
| Арифметика | + - * / // % ** | 7 // 2 → 3, 7 % 2 → 1, 2 ** 10 → 1024 |
| Сравнение | == != < > <= >= | 1 < x < 10 — цепочка сравнений |
| Логика | and or not | x or "по умолчанию" |
| Принадлежность | in, not in | "a" in "abc" → True |
| Идентичность | is, is not | x is None |
| Присваивание | += -= *= /=, := | if (n := len(s)) > 10: ... |
Условия и сопоставление
if score >= 90:
grade = "A"
elif score >= 70:
grade = "B"
else:
grade = "C"
status = "взрослый" if age >= 18 else "ребёнок" # тернарный оператор
match command:
case "start":
print("Запуск")
case "stop" | "exit":
print("Остановка")
case _:
print("Неизвестная команда")
Ложными считаются False, None, 0, пустая строка и пустые коллекции, поэтому вместо if len(items) > 0 пишут просто if items.
Циклы в Python: синтаксис for и while
Цикл for
Синтаксис цикла for в Python: for переменная in последовательность: и тело с отступом. Цикл перебирает любой итерируемый объект — строку, список, словарь, файл, range.
for i in range(5): # 0 1 2 3 4
print(i)
for i in range(10, 0, -2): # 10 8 6 4 2
print(i)
for i, fruit in enumerate(["яблоко", "груша"], start=1):
print(i, fruit)
for name, score in zip(names, scores):
print(name, score)
for key, value in prices.items():
print(key, value)
Цикл while
attempts = 3
while attempts > 0:
password = input("Пароль: ")
if password == "secret":
print("Вход выполнен")
break
attempts -= 1
else:
print("Попытки закончились") # выполняется, если не было break
| Команда | Что делает |
|---|---|
break | досрочно выходит из цикла |
continue | переходит к следующей итерации |
else у цикла | выполняется, если цикл завершился без break |
range(stop), range(start, stop, step) | последовательность чисел, stop не включается |
Генераторы списков (comprehensions)
squares = [x ** 2 for x in range(10)]
evens = [x for x in numbers if x % 2 == 0]
lengths = {word: len(word) for word in words}
unique = {c.lower() for c in text}
total = sum(x * x for x in range(100)) # генераторное выражение
Функции
def greet(name: str, greeting: str = "Привет") -> str:
"""Возвращает приветствие."""
return f"{greeting}, {name}!"
def total(*args, **kwargs):
return sum(args), kwargs
square = lambda x: x * x
print(greet("Анна")) # Привет, Анна!
print(greet("Анна", greeting="Хай")) # Хай, Анна!
| Элемент | Смысл |
|---|---|
def f(a, b=1) | параметр со значением по умолчанию |
*args | любое число позиционных аргументов (кортеж) |
**kwargs | любое число именованных аргументов (словарь) |
return | возврат значения; без него функция вернёт None |
lambda x: ... | короткая анонимная функция в одно выражение |
global, nonlocal | изменение переменной из внешней области видимости |
Не используйте изменяемое значение по умолчанию вроде def f(items=[]): список создаётся один раз и копится между вызовами. Правильно — items=None и внутри if items is None: items = [].
Встроенные функции Python
Встроенные функции Python доступны без импорта. Это основные функции, которые встречаются почти в каждом скрипте.
| Функция | Что делает | Пример → результат |
|---|---|---|
print() | выводит значения | print(1, 2, sep="-") → 1-2 |
input() | читает строку с клавиатуры | int(input()) |
len() | длина коллекции или строки | len("abc") → 3 |
type() | тип объекта | type(3.0) → <class 'float'> |
isinstance() | проверка типа | isinstance(5, int) → True |
int() float() str() bool() | преобразование типов | int("42") → 42 |
list() tuple() set() dict() | создание коллекций | list("ab") → ['a', 'b'] |
range() | диапазон чисел | list(range(3)) → [0, 1, 2] |
enumerate() | пары (индекс, элемент) | list(enumerate("ab")) → [(0, 'a'), (1, 'b')] |
zip() | склеивает последовательности попарно | list(zip([1, 2], "ab")) → [(1, 'a'), (2, 'b')] |
sum() min() max() | сумма, минимум, максимум | max([3, 7, 1]) → 7 |
abs() round() | модуль и округление | round(3.14159, 2) → 3.14 |
sorted() | новый отсортированный список | sorted(words, key=len, reverse=True) |
reversed() | итератор в обратном порядке | list(reversed([1, 2])) → [2, 1] |
map() filter() | применить функцию / отфильтровать | list(map(str, [1, 2])) → ['1', '2'] |
any() all() | хотя бы один / все истинны | all(x > 0 for x in nums) |
open() | открывает файл | open("a.txt", encoding="utf-8") |
help() dir() | справка и список атрибутов | help(str.split), dir(list) |
id() hash() | идентификатор и хеш объекта | hash("a") |
Самый удобный python справочник всегда с собой — функция help() в REPL: help(dict) покажет все методы словаря с описанием, а dir(obj) — список доступных имён.
Методы строк
Синтаксис строк Python: строка неизменяема, каждый метод возвращает новую строку. Срезы работают так же, как у списков: s[1:4], s[::-1] — разворот.
| Метод | Пример → результат |
|---|---|
upper() lower() | "Py".upper() → 'PY' |
capitalize() title() | "hello world".title() → 'Hello World' |
strip() lstrip() rstrip() | " hi \n".strip() → 'hi' |
split(sep) | "a,b,c".split(",") → ['a', 'b', 'c'] |
join(iterable) | "-".join(["a", "b"]) → 'a-b' |
replace(old, new) | "кот".replace("к", "р") → 'рот' |
find() index() | "hello".find("l") → 2; если нет — -1 (у index — ошибка) |
count() | "banana".count("a") → 3 |
startswith() endswith() | "file.py".endswith(".py") → True |
isdigit() isalpha() isspace() | "123".isdigit() → True |
removeprefix() removesuffix() | "test_a".removeprefix("test_") → 'a' |
zfill() center() ljust() | "7".zfill(3) → '007' |
format() | "{} + {}".format(1, 2) → '1 + 2' |
Команды списка Python
Список — изменяемая упорядоченная коллекция. Большинство методов меняют список на месте и возвращают None, поэтому a = a.sort() — частая ошибка.
| Операция | Что делает | Пример |
|---|---|---|
append(x) | добавляет в конец | a.append(4) |
extend(iter) | добавляет все элементы | a.extend([5, 6]) |
insert(i, x) | вставляет по индексу | a.insert(0, "first") |
remove(x) | удаляет первое вхождение значения | a.remove(3) |
pop(i) | удаляет и возвращает элемент (по умолчанию последний) | last = a.pop() |
clear() | очищает список | a.clear() |
index(x) | индекс первого вхождения | a.index("b") |
count(x) | число вхождений | a.count(1) |
sort() | сортирует на месте | a.sort(key=str.lower) |
reverse() | разворачивает на месте | a.reverse() |
copy() | поверхностная копия | b = a.copy() |
del a[i] | удаление по индексу или срезу | del a[1:3] |
| Срезы | a[start:stop:step] | a[-1] — последний, a[:3] — первые три |
Команды словаря Python
| Операция | Что делает | Пример |
|---|---|---|
d[key] | значение по ключу, нет ключа — KeyError | d["name"] |
get(key, default) | значение или запасное | d.get("age", 0) |
d[key] = value | добавить или изменить | d["city"] = "Казань" |
keys() values() items() | ключи, значения, пары | for k, v in d.items(): |
update() | слить с другим словарём | d.update({"a": 1}) |
d1 | d2 | новый объединённый словарь | merged = defaults | user |
pop(key, default) | удалить и вернуть значение | d.pop("tmp", None) |
popitem() | удалить последнюю добавленную пару | d.popitem() |
setdefault(key, value) | вернуть значение, а если ключа нет — создать | d.setdefault("tags", []).append("py") |
key in d | проверка наличия ключа | if "name" in d: |
dict.fromkeys() | словарь из ключей с одним значением | dict.fromkeys("abc", 0) |
len(d), del d[key] | размер и удаление | del d["old"] |
Кортежи и множества
| Операция | Пример → результат |
|---|---|
| Распаковка кортежа | x, y = (3, 4) |
| Добавить в множество | s.add(5), удалить — s.discard(5) |
| Объединение / пересечение | {1, 2} | {2, 3} → {1, 2, 3}; {1, 2} & {2, 3} → {2} |
| Разность | {1, 2} - {2} → {1} |
| Убрать дубли из списка | list(dict.fromkeys(items)) — с сохранением порядка |
Исключения и файлы
try:
number = int(input("Число: "))
except ValueError as err:
print("Это не число:", err)
else:
print("Успех")
finally:
print("Выполняется всегда")
with open("data.txt", "w", encoding="utf-8") as f:
f.write("строка\n")
with open("data.txt", encoding="utf-8") as f:
for line in f:
print(line.rstrip())
| Исключение | Когда возникает |
|---|---|
SyntaxError, IndentationError | ошибка в синтаксисе или отступах |
NameError | имя не определено (опечатка) |
TypeError | операция с неподходящим типом: "1" + 1 |
ValueError | правильный тип, но неверное значение: int("abc") |
IndexError, KeyError | нет такого индекса или ключа |
FileNotFoundError | файл не найден |
ZeroDivisionError | деление на ноль |
Классы
from dataclasses import dataclass
class Dog:
def __init__(self, name: str):
self.name = name
def bark(self) -> str:
return f"{self.name}: Гав!"
@dataclass
class Point:
x: float
y: float
print(Dog("Шарик").bark()) # Шарик: Гав!
print(Point(1, 2)) # Point(x=1, y=2)
Встроенные модули Python
Стандартная библиотека ставится вместе с интерпретатором — достаточно import.
| Модуль | Для чего | Пример |
|---|---|---|
math | математика | math.sqrt(16) → 4.0 |
random | случайные числа | random.randint(1, 6), random.choice(items) |
datetime | дата и время | datetime.date.today() |
pathlib | пути и файлы | Path("data").glob("*.csv") |
os, sys | система, переменные окружения, аргументы | os.environ.get("HOME"), sys.argv |
json | чтение и запись JSON | json.loads(text), json.dumps(obj, ensure_ascii=False) |
csv | таблицы CSV | csv.DictReader(f) |
collections | Counter, defaultdict, deque | Counter("banana").most_common(1) → [('a', 3)] |
itertools | комбинации и цепочки итераторов | itertools.chain(a, b) |
re | регулярные выражения | re.findall(r"\d+", s) |
time | паузы и замер времени | time.sleep(1), time.perf_counter() |
asyncio | асинхронный код | asyncio.run(main()) |
В Python 3.15 появился ленивый импорт (PEP 810): lazy import pandas as pd откладывает загрузку модуля до первого обращения к нему, и скрипт с тяжёлыми зависимостями стартует заметно быстрее.
Команды Python в терминале
Отдельная группа запросов «python команды» — это команды для запуска интерпретатора и установки библиотек. На Windows вместо python3 обычно пишут python или py.
| Команда | Что делает |
|---|---|
python3 --version | показать версию |
python3 | открыть интерактивную консоль REPL (выход — exit()) |
python3 script.py | запустить файл |
python3 -c "print(2 + 2)" | выполнить одну строку |
python3 -m venv .venv | создать виртуальное окружение |
source .venv/bin/activate / .venv\Scripts\activate | активировать окружение (Linux, macOS / Windows) |
python3 -m pip install requests | установить пакет |
pip list, pip freeze > requirements.txt | список пакетов и их сохранение |
pip install -r requirements.txt | установить зависимости из файла |
python3 -m http.server 8000 | простой веб-сервер в текущей папке |
uv init, uv add requests, uv run main.py | проект, зависимость и запуск через менеджер uv |
Частые ошибки начинающих
- Сравнение через
=— в условии нужно==; одиночное=— это присваивание. - Забытое двоеточие после
if,for,defдаётSyntaxError. - Сложение строки и числа:
"Возраст: " + 25— ошибка, пишитеf"Возраст: {25}". - Изменение списка во время обхода — перебирайте копию
for x in a[:]или собирайте новый список. input()возвращает строку — для арифметики оберните вint()илиfloat().
Итог
Синтаксис Python держится на отступах, двоеточиях и небольшом наборе конструкций: условия, циклы for и while, функции, классы. Добавьте к ним два десятка встроенных функций и методы строк, списков и словарей — и вы закроете большую часть повседневных задач. Сохраните шпаргалку, а когда таблицы станут привычными, переходите к модулям и асинхронности; всё это по шагам разобрано на практике в курсе «Python 3.15: от новичка до профи».
Частые вопросы
Сколько пробелов ставить для отступа в Python?
По стандарту PEP 8 — 4 пробела на уровень. Главное — одинаково во всём блоке и без смешивания с табами.
Чем список отличается от кортежа?
Список изменяемый, его можно дополнять и сортировать на месте; кортеж неизменяемый, поэтому подходит как ключ словаря и для фиксированных наборов значений.
Как посмотреть все методы объекта прямо в Python?
Вызовите dir(obj) для списка имён и help(obj) для описания — например, help(str) покажет все методы строк.
Чем sort() отличается от sorted()?
Метод list.sort() сортирует сам список и возвращает None, а функция sorted() возвращает новый список и работает с любой итерируемой коллекцией.
Нужна ли точка с запятой в конце строки?
Нет. Точка с запятой допустима для нескольких команд в одной строке, но в нормальном коде каждая инструкция пишется с новой строки.
Эта тема подробно разобрана с практикой в курсе «Python 3.15: от новичка до профи».
- Python 3.15 с нуля и для опытных: что нового и как учить
- Python 3.15: установка, REPL и первый скрипт за десять минут
- Переменные, числа и строки в Python: f-строки и t-строки
- Условия, циклы и match/case в Python: управляем ходом программы
- Списки, кортежи, словари и множества: frozendict в Python 3.15