# Шпаргалка по Python: синтаксис, команды и встроенные функции в таблицах

URL: https://skillaria.top/ru/guides/python/shpargalka-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: от новичка до профи».

## FAQ

**Сколько пробелов ставить для отступа в Python?**

По стандарту PEP 8 — 4 пробела на уровень. Главное — одинаково во всём блоке и без смешивания с табами.

**Чем список отличается от кортежа?**

Список изменяемый, его можно дополнять и сортировать на месте; кортеж неизменяемый, поэтому подходит как ключ словаря и для фиксированных наборов значений.

**Как посмотреть все методы объекта прямо в Python?**

Вызовите dir(obj) для списка имён и help(obj) для описания — например, help(str) покажет все методы строк.

**Чем sort() отличается от sorted()?**

Метод list.sort() сортирует сам список и возвращает None, а функция sorted() возвращает новый список и работает с любой итерируемой коллекцией.

**Нужна ли точка с запятой в конце строки?**

Нет. Точка с запятой допустима для нескольких команд в одной строке, но в нормальном коде каждая инструкция пишется с новой строки.


---
Source: Skillaria.Top (https://skillaria.top)
