Перейти к содержимому
Поиск
Разработка

Python: полный мануал с примерами и справочником функций

Полный практический мануал Python: от установки и синтаксиса до файлов, сети, тестов и проектов. 25 глав, справочник функций и методов, упражнения с решениями и 195 проверенных примеров.

Александр Некрасов
Python: практический мануал с кодом, папкой и схемой работы

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

Выберите одну из 25 глав или найдите нужную функцию через поиск. В справочнике собраны все 73 позиции официальной таблицы встроенных функций и типов Python 3.15, а также 161 метод и 12 свойств строк, коллекций и путей. Для каждой позиции есть назначение, важный нюанс и ссылка на первичную документацию.

Код можно копировать и скачивать. 195 самостоятельных примеров проверены запуском на Python 3.15.0; у упражнений есть решения и ожидаемый результат. Новые возможности языка отмечены в тексте, а интерактивные фрагменты и команды установки объяснены отдельно.

Если начинаете с нуля, открывайте главы по порядку. Если решаете конкретную задачу, ищите по-русски или по имени Python: open, str.split, Path.read_text.

Python 3.15.025 главПримеры проверены запуском
Все главы руководства 25

Глава 9 · начальный

Встроенные функции: полный справочник и выбор по задаче

Найдите нужную встроенную функцию, прочитайте сигнатуру и проверьте её на обычном и пограничном вводе.

Как найти функцию и понять её запись

Нужно отсортировать записи, посчитать элементы или открыть файл? Сначала ищите готовую операцию в стандартном наборе. Встроенные функции доступны без собственного импорта: len(items), print(message), sorted(items). Рядом находятся вызываемые типы: list(), dict(), str(). Для посетителя это один справочник, хотя функция и создание объекта решают разные задачи.

В мануале представлен полный каталог из 73 позиций официальной таблицы Python 3.15: включая frozendict, sentinel и специальную __import__. Исключения и константы, например ValueError и None, изучаются отдельно. Наличие всех позиций этой таблицы не означает каталог всех функций сторонних библиотек.

Начните с имени или задачи, затем прочитайте возвращаемое значение и ограничения. В сигнатуре косая черта отделяет позиционные параметры, одиночная звёздочка начинает именованные. Значение по умолчанию позволяет опустить аргумент. Такие обозначения объясняют, почему две внешне похожие записи вызова могут вести себя по-разному.

Какие группы пригодятся в обычной программе

Для чисел используйте abs, round, min, max, sum, pow и divmod. Но сначала определите смысл расчёта. Денежная сумма с точными десятичными правилами может требовать Decimal из стандартной библиотеки; простой вызов round не меняет способ хранения исходного float.

Для обхода данных нужны enumerate, zip, iter, next и range. Для проверки условий — all и any. Для порядка — sorted и reversed. Многие из этих операций возвращают объект для последующего обхода, поэтому добавляйте list(...) только когда действительно нужны сохранённые элементы.

Для преобразования есть int, float, str, bytes и контейнеры. Преобразование может завершиться исключением; функция не угадывает за вас формат чужого текста. Для проверки объекта применяются isinstance, issubclass, callable и hasattr. Их результат отвечает конкретному вопросу, а не подтверждает всю пригодность объекта.

Сортировать, изменить список или пройти наоборот

sorted создаёт новый список из переданного итерируемого объекта. Метод list.sort переставляет существующий список и возвращает None. reversed позволяет идти в обратном порядке, сохраняя исходные значения. Выбор определяется тем, нужно ли сохранить прежний порядок и нужен ли отдельный результат.

Обе сортировки поддерживают key. Для списка товаров ключом может быть цена, для текстов — подготовленная строка. Сортировка стабильна: элементы с одинаковым ключом сохраняют взаимный порядок. Это полезно, когда ранее выполненная сортировка или последовательность поступления имеют значение. Не сравнивайте объекты разных несопоставимых типов, рассчитывая на случайный универсальный порядок.

values = [3, 1, 2]
ordered = sorted(values)
print(values)
print(ordered)
print(list(reversed(values)))
result = values.sort()
print(values)
print(result is None)
[3, 1, 2]
[1, 2, 3]
[2, 1, 3]
[1, 2, 3]
True

Проверять длину и пустые данные

По умолчанию zip заканчивается вместе с самым коротким источником. Для связанных колонок это может незаметно потерять часть записей. Параметр strict=True, доступный с Python 3.10, превращает несоответствие длин в ошибку при обходе. Если одна колонка намеренно короче, такая проверка не подходит: сначала сформулируйте правило обработки отсутствующего значения.

all([]) даёт True, а any([]) — False. Это следствие смысла операций: среди пустого набора нет ложного элемента и нет истинного. Если бизнес-правило требует хотя бы одну запись, отдельно проверьте непустоту. У min и max для пустого итерируемого источника можно задать default; значение должно иметь понятный смысл для дальнейшего расчёта.

names = ["А", "Б"]
amounts = [10]
print(list(zip(names, amounts)))
try:
    print(list(zip(names, amounts, strict=True)))
except ValueError:
    print("Длины различаются")
print(all([]), any([]))
print(max([], default=None))
[('А', 10)]
Длины различаются
True False
None

Проверка типа и узнаваемое отсутствующее значение

isinstance(True, int) возвращает True: bool является подтипом int. Для поля, где разрешено только обычное целое число, это может быть слишком широкая проверка. В то же время сравнение type(value) is int намеренно исключит и пользовательские подклассы. Выбирайте проверку согласно контракту, а не привычной короткой записи.

Новый тип sentinel в Python 3.15 помогает отличить отсутствующий аргумент от явно переданного None. Сравнивайте конкретный маркер по идентичности. frozendict создаёт словарь без операций изменения; он не является подклассом dict. Его вложенные значения сохраняют собственные свойства: наличие внутри списка не делает этот список неизменяемым и мешает хешируемости всего объекта.

MISSING = sentinel("MISSING")

def describe(value=MISSING):
    if value is MISSING:
        return "Аргумент не передан"
    if value is None:
        return "Передан None"
    return "Передано значение"

settings = frozendict(mode="demo", limit=10)
print(describe())
print(describe(None))
print(settings["limit"])
print(settings == frozendict(limit=10, mode="demo"))
try:
    settings["limit"] = 20
except TypeError:
    print("Словарь не изменяется")
Аргумент не передан
Передан None
10
True
Словарь не изменяется

Результат проверки и пределы возможностей

callable сообщает, что объект выглядит вызываемым; конкретный вызов всё равно может завершиться ошибкой аргументов или внутреннего расчёта. hasattr проверяет доступ к атрибуту и может вызвать логику свойства. Для подробного исследования пригодятся help, dir, vars и модуль inspect. Полученный список имён не заменяет описание публичного API.

eval, exec и compile работают с кодом. Не используйте их как удобное преобразование пользовательской строки в число или список. Для известных форматов существуют int, JSON и другие целевые парсеры. open рассматривайте вместе с контекстным менеджером и кодировкой, а input — вместе с обработкой полученной строки.

Практический маршрут справочника короткий: выбрать операцию, определить форму данных, проверить результат на пустом и неправильном вводе, затем встроить в функцию своей программы. Если знакомая запись не работает, сверяйте минимальную версию и сигнатуру. Не заменяйте такую проверку установкой похожего пакета: встроенная функция уже принадлежит интерпретатору.

Попробуйте самостоятельно. Для двух колонок из CSV нужно сохранить каждую пару и остановить обработку, если длины различаются. Какую запись выбрать?

Посмотреть решение

Используйте zip(first, second, strict=True) и обработайте ValueError вокруг фактического обхода. Если требуется сохранить результат, создайте list внутри этого блока. Затем отдельно решите, допустимы ли обе пустые колонки: all не проверяет наличие данных.

Все 73 встроенные функции и вызываемые типы

Откройте нужное имя: назначение, нюанс, пример использования и точная ссылка на документацию. Интерактивный breakpoint обозначен отдельно.

absФункция · Числа

Возвращает модуль числа.

Нюанс. Для комплексного числа результатом будет его величина, а не отдельно изменённые части.

abs(number, /) — упрощённо; остальные варианты в документации

Получить расстояние от нуля или величину отклонения независимо от его знака. Для комплексного числа результатом будет его модуль.

expected = 18
actual = 13
print(abs(actual - expected))

Ожидаемый вывод:

5
Официальная документация: abs
aiterФункция · Асинхронность

Получает асинхронный итератор объекта.

Нюанс. Варианта с вызываемым объектом и стоп-значением, как у iter(), здесь нет.

aiter(async_iterable, /) — упрощённо; остальные варианты в документации

Начать ручной обход асинхронного источника. Полученный итератор используют с anext/await; обычный iter для него не подходит.

import asyncio
async def source():
    yield 7
async def main():
    iterator = aiter(source())
    print(iterator is aiter(iterator))
    print(await anext(iterator))
    await iterator.aclose()
asyncio.run(main())

Ожидаемый вывод:

True
7
Официальная документация: aiter
allФункция · Проверки

Проверяет, истинны ли все элементы перебираемого объекта.

Нюанс. Для пустого объекта возвращает True.

all(iterable, /) — упрощённо; остальные варианты в документации

Проверить, что все условия выполнены. Для пустого источника результат True; если нужны ещё и данные, отдельно проверяйте непустоту.

quantities = [2, 0, 4]
print(all(value >= 0 for value in quantities))
print(all([]))

Ожидаемый вывод:

True
True
Официальная документация: all
anextФункция · Асинхронность

Получает ожидание следующего элемента асинхронного итератора.

Нюанс. Результат нужно ожидать через await; без default конец итерации вызывает StopAsyncIteration.

anext(async_iterator[, default], /) — упрощённо; остальные варианты в документации

Получить один элемент асинхронного итератора через await. Значение default позволяет обработать завершение без StopAsyncIteration.

import asyncio
async def source():
    yield 'готово'
async def main():
    iterator = aiter(source())
    print(await anext(iterator))
    print(await anext(iterator, 'конец'))
asyncio.run(main())

Ожидаемый вывод:

готово
конец
Официальная документация: anext
anyФункция · Проверки

Проверяет, есть ли хотя бы один истинный элемент.

Нюанс. Для пустого объекта возвращает False.

any(iterable, /) — упрощённо; остальные варианты в документации

Узнать, найдена ли хотя бы одна подходящая запись. Пустой источник даёт False; проверка останавливается на первом истинном элементе.

statuses = ['new', 'error', 'done']
print(any(status == 'error' for status in statuses))
print(any([]))

Ожидаемый вывод:

True
False
Официальная документация: any
asciiФункция · Представление и форматирование

Создаёт представление объекта с экранированными не-ASCII символами.

Нюанс. Это представление для просмотра, а не преобразование текстового файла в ASCII.

ascii(object, /) — упрощённо; остальные варианты в документации

Показать отладочное представление с экранированными не-ASCII символами. Это представление, а не кодировка исходного файла.

word = 'ёж'
escaped = ascii(word)
print(escaped)

Ожидаемый вывод:

'\u0451\u0436'
Официальная документация: ascii
binФункция · Числа

Записывает целое число двоичной строкой.

Нюанс. В результат входит префикс 0b; для другого оформления используйте format().

bin(integer, /) — упрощённо; остальные варианты в документации

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

flags = 10
print(bin(flags))
print(format(flags, '08b'))

Ожидаемый вывод:

0b1010
00001010
Официальная документация: bin
boolТип / конструктор · Типы и преобразования

Преобразует объект в True или False по правилам истинности.

Нюанс. bool является подклассом int, поэтому проверки на int включают булевы значения.

bool(object=False, /) — упрощённо; остальные варианты в документации

Явно получить True/False по правилам истинности. Непустая строка «False» тоже истинна: это не разбор текстовой настройки.

values = [[], [0], '', 'False']
for value in values:
    print(bool(value))

Ожидаемый вывод:

False
True
False
True
Официальная документация: bool
breakpointФункция · Отладка

Передаёт управление отладчику в месте вызова.

Нюанс. Поведение зависит от sys.breakpointhook и переменной PYTHONBREAKPOINT.

breakpoint(*args, **kwargs) — упрощённо; остальные варианты в документации

Интерактивно остановиться и исследовать значения в отладчике. Пример требует человека: он исключён из автоматической проверки, приглашения отладчика не объявлены стабильным stdout.

Интерактивный фрагмент. Требует участия человека; автоматически не запускался. В архиве он отделён от проверенных run-примеров.

subtotal = 120 + 80
discount = 20
breakpoint()
print(subtotal - discount)
Официальная документация: breakpoint
bytearrayТип / конструктор · Байты и буферы

Создаёт изменяемую последовательность байтов.

Нюанс. Целый аргумент задаёт длину массива нулевых байтов, а не код одного символа.

bytearray(source=...); bytearray(text, encoding, errors="strict") — упрощённо; остальные варианты в документации

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

buffer = bytearray(b'cat')
buffer[0] = ord('b')
print(buffer.decode('ascii'))
print(bytes(buffer))

Ожидаемый вывод:

bat
b'bat'
Официальная документация: bytearray
bytesТип / конструктор · Байты и буферы

Создаёт неизменяемую последовательность байтов.

Нюанс. Для преобразования строки необходимо указать кодировку.

bytes(source=...); bytes(text, encoding, errors="strict") — упрощённо; остальные варианты в документации

Получить неизменяемые байты или закодировать текст с явной кодировкой. bytes(3) создаёт три нулевых байта, а не текст «3».

text = 'Ё'
data = bytes(text, 'utf-8')
print(list(data))
print(data.decode('utf-8'))

Ожидаемый вывод:

[208, 129]
Ё
Официальная документация: bytes
callableФункция · Проверки

Проверяет, допускает ли объект вызов.

Нюанс. True не гарантирует, что конкретный вызов с выбранными аргументами завершится успешно.

callable(object, /) — упрощённо; остальные варианты в документации

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

handler = lambda value: value * 2
print(callable(handler))
print(callable(42))
print(handler(5))

Ожидаемый вывод:

True
False
10
Официальная документация: callable
chrФункция · Текст и Unicode

Возвращает символ Unicode по его числовому коду.

Нюанс. Допустимы коды от 0 до 0x10FFFF; за пределами возникает ValueError.

chr(codepoint, /) — упрощённо; остальные варианты в документации

Преобразовать числовой код Unicode в символ, например при разборе собственного текстового формата. Это операция над кодовой точкой, не над произвольным байтом UTF-8.

codepoint = 0x0410
letter = chr(codepoint)
print(letter)
print(ord(letter) == codepoint)

Ожидаемый вывод:

А
True
Официальная документация: chr
classmethodДекоратор / тип · Классы и атрибуты

Создаёт метод, получающий класс первым аргументом.

Нюанс. При вызове через подкласс первым аргументом будет этот подкласс.

classmethod(function); обычно @classmethod — упрощённо; остальные варианты в документации

Создать альтернативный конструктор, который получает класс как cls и сохраняет нужный класс при наследовании.

class Quantity:
    def __init__(self, value):
        self.value = value
    @classmethod
    def from_text(cls, text):
        return cls(int(text))
class SpecialQuantity(Quantity):
    pass
value = SpecialQuantity.from_text('12')
print(type(value).__name__)
print(value.value)

Ожидаемый вывод:

SpecialQuantity
12
Официальная документация: classmethod
compileФункция · Выполнение кода

Компилирует исходный текст в объект кода или AST.

Нюанс. Режимы exec, eval и single предназначены для разных форм исходного текста.

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) — упрощённо; остальные варианты в документации

Подготовить собственный литерал к повторному выполнению или проверить его синтаксис. compile/eval/exec не образуют песочницу для чужого кода.

code = compile('3 * 7', '<owned-demo>', 'eval')
print(type(code).__name__)
print(eval(code))

Ожидаемый вывод:

code
21
Официальная документация: compile
complexТип / конструктор · Типы и преобразования

Создаёт комплексное число из числа, строки или пары частей.

Нюанс. Передача комплексных значений в отдельные real и imag устарела с Python 3.14.

complex(real=0, imag=0); также complex(text) — упрощённо; остальные варианты в документации

Представить число с действительной и мнимой частью для соответствующего расчёта. Строковый и числовой способы создания имеют разные правила аргументов.

value = complex(2, 3)
print(value)
print(value * value)
print(value.real, value.imag)

Ожидаемый вывод:

(2+3j)
(-5+12j)
2.0 3.0
Официальная документация: complex
delattrФункция · Классы и атрибуты

Удаляет атрибут объекта по строковому имени.

Нюанс. Объект должен разрешать удаление; операция эквивалентна del для этого атрибута.

delattr(object, name, /) — упрощённо; остальные варианты в документации

Удалить атрибут по известному строковому имени. Используйте только допустимые имена своего объекта; дескриптор может задавать собственные правила удаления.

class Draft:
    pass
item = Draft()
item.note = 'черновик'
delattr(item, 'note')
print(hasattr(item, 'note'))

Ожидаемый вывод:

False
Официальная документация: delattr
dictТип / конструктор · Контейнеры

Создаёт словарь соответствий между ключами и значениями.

Нюанс. Ключи должны быть хешируемыми; порядок добавления сохраняется.

dict(); dict(mapping); dict(pairs); dict(**kwargs) — упрощённо; остальные варианты в документации

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

pairs = [('a', 1), ('b', 3), ('a', 2)]
record = dict(pairs)
print(sorted(record.items()))
print(record['a'])

Ожидаемый вывод:

[('a', 2), ('b', 3)]
2
Официальная документация: dict
dirФункция · Отладка

Выводит имена в текущей области или доступные атрибуты объекта.

Нюанс. Список удобен для исследования, но не обязан быть исчерпывающим.

dir(); dir(object, /) — упрощённо; остальные варианты в документации

Узнать доступные имена при исследовании объекта. Результат зависит от объекта и не заменяет полный контракт API или проверку наличия конкретного атрибута.

names = dir([])
interesting = [name for name in names if name in {'append', 'clear'}]
print(sorted(interesting))

Ожидаемый вывод:

['append', 'clear']
Официальная документация: dir
divmodФункция · Числа

Возвращает пару из частного с делением вниз и остатка.

Нюанс. Для целых остаток следует знаку делителя, что важно при отрицательных числах.

divmod(a, b, /) — упрощённо; остальные варианты в документации

Одновременно получить целое частное с делением вниз и остаток, например разбить целое число секунд на минуты и остаток секунд.

seconds = 125
minutes, remainder = divmod(seconds, 60)
print(minutes, remainder)

Ожидаемый вывод:

2 5
Официальная документация: divmod
enumerateТип / конструктор · Итерация

Перебирает элементы вместе со счётчиком.

Нюанс. Счётчик по умолчанию начинается с нуля и меняется параметром start.

enumerate(iterable, start=0) — упрощённо; остальные варианты в документации

Перебирать строки или записи вместе с номером, не управляя отдельным счётчиком вручную. start задаёт первый номер.

names = ['Кабель', 'Клемма']
for number, name in enumerate(names, start=1):
    print(number, name)

Ожидаемый вывод:

1 Кабель
2 Клемма
Официальная документация: enumerate
evalФункция · Выполнение кода

Вычисляет выражение Python и возвращает его результат.

Нюанс. Непроверенный пользовательский текст способен выполнить произвольный код.

eval(source, /, globals=None, locals=None) — упрощённо; остальные варианты в документации

Вычислить известное выражение Python. В примере используется только наш литерал; удаление builtins из globals не делает eval безопасной песочницей для внешних выражений.

expression = 'price * quantity'
namespace = {'price': 12, 'quantity': 3}
print(eval(expression, {'__builtins__': {}}, namespace))

Ожидаемый вывод:

36
Официальная документация: eval
execФункция · Выполнение кода

Выполняет набор инструкций Python из текста или объекта кода.

Нюанс. Непроверенный пользовательский текст способен выполнить произвольный код.

exec(source, /, globals=None, locals=None, *, closure=None) — упрощённо; остальные варианты в документации

Выполнить собственные инструкции в явно выбранном пространстве имён. Не применять к чужому тексту как к формату данных: это исполнение кода, а не безопасный разбор.

namespace = {'value': 4}
exec('result = value * 2', namespace)
print(namespace['result'])

Ожидаемый вывод:

8
Официальная документация: exec
filterТип / конструктор · Итерация

Лениво оставляет элементы, для которых условие истинно.

Нюанс. При function=None отбрасываются все ложные элементы, включая нули и пустые строки.

filter(function, iterable, /) — упрощённо; остальные варианты в документации

Лениво оставить элементы, прошедшие проверку. Результат — одноразовый итератор; для повторного использования материализуйте нужный небольшой список.

source = [-2, 0, 3, 5]
selected = filter(lambda value: value > 0, source)
print(list(selected))
print(list(selected))

Ожидаемый вывод:

[3, 5]
[]
Официальная документация: filter
floatТип / конструктор · Типы и преобразования

Преобразует число или числовую строку в число с плавающей точкой.

Нюанс. Строка должна соответствовать синтаксису Python; десятичная запятая не принимается.

float(number=0, /); также float(text, /) — упрощённо; остальные варианты в документации

Прочитать число с плавающей точкой из десятичной строки. Для точных денежных правил выбирайте подходящее представление; float не гарантирует десятичную точность.

value = float('12.5')
print(value)
print(value.is_integer())

Ожидаемый вывод:

12.5
False
Официальная документация: float
formatФункция · Представление и форматирование

Форматирует одно значение по указанной спецификации.

Нюанс. Спецификация зависит от типа объекта и его метода __format__().

format(value, format_spec="", /) — упрощённо; остальные варианты в документации

Получить форматированную строку одного значения: сумму с двумя знаками, номер нужной ширины или иной формат, поддержанный типом.

amount = 12.5
print(format(amount, '.2f'))
print(format(42, '04d'))

Ожидаемый вывод:

12.50
0042
Официальная документация: format
frozendictТип / конструктор · Контейнеры

Создаёт неизменяемый словарь с интерфейсом чтения dict.

Нюанс. Появился в 3.15; хешируется только тогда, когда хешируются все ключи и значения.

frozendict(); frozendict(mapping_or_pairs); frozendict(**kwargs) — упрощённо; остальные варианты в документации

Начиная с Python 3.15 создать неизменяемое отображение для настроек или передаваемого снимка. Оно не замораживает автоматически изменяемые вложенные значения.

settings = frozendict({'limit': 3, 'mode': 'demo'})
print(sorted(settings.items()))
try:
    settings['limit'] = 4
except TypeError:
    print('Изменение запрещено')

Ожидаемый вывод:

[('limit', 3), ('mode', 'demo')]
Изменение запрещено
Официальная документация: frozendict
frozensetТип / конструктор · Контейнеры

Создаёт неизменяемое множество уникальных элементов.

Нюанс. Элементы должны быть хешируемыми; само множество также можно использовать как ключ.

frozenset(iterable=(), /) — упрощённо; остальные варианты в документации

Сохранить неизменяемое множество уникальных хешируемых элементов, в том числе как ключ словаря или элемент другого множества. Порядок элементов не задан.

selected = frozenset([3, 1, 3])
print(sorted(selected))
print(len({selected}))

Ожидаемый вывод:

[1, 3]
1
Официальная документация: frozenset
getattrФункция · Классы и атрибуты

Читает атрибут объекта по строковому имени.

Нюанс. Если атрибут отсутствует, возвращает default или вызывает AttributeError.

getattr(object, name[, default], /) — упрощённо; остальные варианты в документации

Прочитать известный атрибут по имени, например при выборе разрешённого параметра. Значение default используется, когда атрибут отсутствует; property при чтении может выполнять код.

class Settings:
    limit = 10
settings = Settings()
print(getattr(settings, 'limit'))
print(getattr(settings, 'missing', 0))

Ожидаемый вывод:

10
0
Официальная документация: getattr
globalsФункция · Области видимости

Возвращает словарь глобальных имён текущего модуля.

Нюанс. Внутри функции это пространство модуля определения функции, а не места вызова.

globals() — упрощённо; остальные варианты в документации

Получить отображение глобальных имён текущего модуля при диагностике собственного кода. Не выводите весь словарь: в нём могут быть данные, не предназначенные для публикации.

DEMO_COUNT = 7
namespace = globals()
print(namespace['DEMO_COUNT'])
print('DEMO_COUNT' in namespace)

Ожидаемый вывод:

7
True
Официальная документация: globals
hasattrФункция · Классы и атрибуты

Проверяет доступность атрибута по имени.

Нюанс. Проверка вызывает getattr(), поэтому может запустить property или другой дескриптор.

hasattr(object, name, /) — упрощённо; остальные варианты в документации

Проверить доступность конкретного атрибута. Проверка выполняет обращение к нему: дескриптор может запуститься, а исключение кроме AttributeError может выйти наружу.

class Item:
    name = 'demo'
item = Item()
print(hasattr(item, 'name'))
print(hasattr(item, 'price'))

Ожидаемый вывод:

True
False
Официальная документация: hasattr
hashФункция · Проверки

Возвращает хеш хешируемого объекта.

Нюанс. Разные объекты могут иметь один хеш; совпадение хешей не доказывает равенство.

hash(object, /) — упрощённо; остальные варианты в документации

Получить хеш хешируемого ключа для понимания работы dict/set. Хеш не является уникальным идентификатором; значения для ряда типов могут меняться между процессами.

key = (7, 'web')
value = hash(key)
print(isinstance(value, int))
print(value == hash((7, 'web')))

Ожидаемый вывод:

True
True
Официальная документация: hash
helpФункция · Отладка

Показывает справку по объекту или запускает интерактивную справочную систему.

Нюанс. Без аргумента запускает диалог в консоли, а не возвращает готовый текст документации.

help(); help(object) — упрощённо; остальные варианты в документации

Посмотреть справку по функции или типу. Без аргумента включается интерактивная система; здесь справка по len реально вызывается и перехватывается для устойчивой проверки.

import io
from contextlib import redirect_stdout
buffer = io.StringIO()
with redirect_stdout(buffer):
    help(len)
print('len' in buffer.getvalue())

Ожидаемый вывод:

True
Официальная документация: help
hexФункция · Числа

Записывает целое число шестнадцатеричной строкой.

Нюанс. В результат входят префикс 0x и строчные буквы.

hex(integer, /) — упрощённо; остальные варианты в документации

Представить целое число шестнадцатеричной строкой, например для чтения кодов. Для нулевого заполнения и отсутствия префикса используйте format.

value = 255
print(hex(value))
print(format(value, '04x'))

Ожидаемый вывод:

0xff
00ff
Официальная документация: hex
idФункция · Проверки

Возвращает идентификатор конкретного объекта.

Нюанс. После завершения жизни объекта тот же идентификатор может получить другой объект.

id(object, /) — упрощённо; остальные варианты в документации

Проверить, относятся ли ссылки к одному живому объекту. Не сохраняйте числовой id как постоянный ключ: после завершения жизни объекта значение может использоваться повторно.

record = []
alias = record
other = []
print(id(record) == id(alias))
print(id(record) != id(other))

Ожидаемый вывод:

True
True
Официальная документация: id
inputФункция · Ввод и вывод

Читает строку из стандартного ввода.

Нюанс. Результат всегда строка; конец ввода вызывает EOFError.

input(prompt="", /) — упрощённо; остальные варианты в документации

Прочитать одну строку из стандартного ввода. Результат — str без завершающего перевода строки; числа и границы проверяют отдельно. Для этого примера stdin задан заранее.

Ввод для показанного результата:

Кабель
raw = input()
name = raw.strip()
print(name)
print(len(name))

Ожидаемый вывод:

Кабель
6
Официальная документация: input
intТип / конструктор · Типы и преобразования

Преобразует число или строку в целое число.

Нюанс. При преобразовании float дробная часть отбрасывается к нулю, а не округляется вниз.

int(number=0, /); int(text, base=10) — упрощённо; остальные варианты в документации

Получить целое из строки или числа, либо разобрать запись в заданной системе счисления. Преобразование float отбрасывает дробную часть к нулю, а не округляет вниз.

quantity = int('12')
print(quantity + 3)
print(int('ff', 16))
print(int(-3.9))

Ожидаемый вывод:

15
255
-3
Официальная документация: int
isinstanceФункция · Проверки

Проверяет принадлежность объекта к типу или его подклассам.

Нюанс. Проверка учитывает наследование; для строгого сравнения конкретного типа нужен type().

isinstance(object, classinfo, /) — упрощённо; остальные варианты в документации

Проверить тип с учётом наследования и принять несколько типов. bool наследуется от int: если логические значения запрещены, одной такой проверки целого недостаточно.

value = True
print(isinstance(value, int))
print(type(value) is int)
print(isinstance('report', (str, bytes)))

Ожидаемый вывод:

True
False
True
Официальная документация: isinstance
issubclassФункция · Проверки

Проверяет, наследуется ли один класс от другого.

Нюанс. Класс считается подклассом самого себя.

issubclass(class, classinfo, /) — упрощённо; остальные варианты в документации

Проверить отношение между классами при выборе реализации или регистрации обработчика. Аргументом должен быть класс, а не его экземпляр.

class Report:
    pass
class CsvReport(Report):
    pass
print(issubclass(CsvReport, Report))
print(issubclass(Report, CsvReport))

Ожидаемый вывод:

True
False
Официальная документация: issubclass
iterФункция · Итерация

Получает обычный итератор или повторно вызывает функцию до стоп-значения.

Нюанс. В варианте с двумя аргументами остановка определяется равенством результата стоп-значению.

iter(iterable, /); iter(callable, sentinel, /) — упрощённо; остальные варианты в документации

Получить обычный итератор либо вызывать функцию до стоп-значения. Итератор расходуется при обходе; второй вариант удобен для чтения последовательных блоков.

source = iter([1, 2, 0, 3])
blocks = iter(lambda: next(source), 0)
print(list(blocks))
print(next(source))

Ожидаемый вывод:

[1, 2]
3
Официальная документация: iter
lenФункция · Контейнеры

Возвращает количество элементов объекта.

Нюанс. Для строки считает кодовые точки Unicode, которые не всегда совпадают с видимыми символами.

len(object, /) — упрощённо; остальные варианты в документации

Узнать число элементов контейнера или кодовых точек строки. Длина Unicode-строки не обязательно равна числу видимых символов или размеру UTF-8 в байтах.

text = 'Ёж'
print(len(text))
print(len(text.encode('utf-8')))

Ожидаемый вывод:

2
4
Официальная документация: len
listТип / конструктор · Контейнеры

Создаёт изменяемый список из перебираемого объекта.

Нюанс. Преобразование другого контейнера не делает глубокие копии вложенных элементов.

list(iterable=(), /) — упрощённо; остальные варианты в документации

Материализовать небольшой источник или создать изменяемую последовательность. Копирование внешнего контейнера не делает глубокой копии вложенных изменяемых объектов.

source = range(3)
values = list(source)
values.append(9)
print(values)

Ожидаемый вывод:

[0, 1, 2, 9]
Официальная документация: list
localsФункция · Области видимости

Возвращает отображение локальных имён и их значений.

Нюанс. В функциях возвращает новый снимок; изменение этого словаря не переназначает локальные переменные.

locals() — упрощённо; остальные варианты в документации

Посмотреть локальные значения собственной функции при исследовании. Не используйте изменение возвращённого отображения как переносимый способ присвоить локальную переменную.

def describe(name, count):
    values = locals()
    return values['name'], values['count']
print(describe('demo', 3))

Ожидаемый вывод:

('demo', 3)
Официальная документация: locals
mapТип / конструктор · Итерация

Лениво применяет функцию к элементам одного или нескольких перебираемых объектов.

Нюанс. По умолчанию останавливается на самом коротком; strict=True проверяет равенство длин.

map(function, iterable, /, *iterables, strict=False) — упрощённо; остальные варианты в документации

Лениво преобразовать записи функцией. Итератор одноразовый; при нескольких источниках обычный режим останавливается на коротком. strict доступен с Python 3.14.

converted = map(int, ['1', '2', '3'])
values = list(converted)
print(values)
print(list(converted))

Ожидаемый вывод:

[1, 2, 3]
[]
Официальная документация: map
maxФункция · Числа и порядок

Возвращает наибольший элемент по самому значению или ключу сравнения.

Нюанс. Для пустого iterable нужен default, иначе возникает ValueError.

max(iterable, /, *, key=None[, default]); max(a, b, ...) — упрощённо; остальные варианты в документации

Выбрать запись с наибольшим ключом сравнения. default применим к пустому iterable; при равных ключах возвращается первый встретившийся элемент.

records = [{'name': 'A', 'count': 2}, {'name': 'B', 'count': 5}]
best = max(records, key=lambda row: row['count'])
print(best['name'])
print(max([], default='нет данных'))

Ожидаемый вывод:

B
нет данных
Официальная документация: max
memoryviewТип / конструктор · Байты и буферы

Предоставляет доступ к буферу без обязательного копирования данных.

Нюанс. Если исходный буфер изменяемый, изменения через представление затрагивают исходные данные.

memoryview(object) — упрощённо; остальные варианты в документации

Работать с поддерживающим буфер объектом без обязательного копирования байтов. Изменение доступного для записи view меняет исходный буфер; время жизни view важно для изменения размера буфера.

buffer = bytearray(b'abc')
with memoryview(buffer) as view:
    view[1] = ord('Z')
    print(view.tolist())
print(buffer.decode('ascii'))

Ожидаемый вывод:

[97, 90, 99]
aZc
Официальная документация: memoryview
minФункция · Числа и порядок

Возвращает наименьший элемент по самому значению или ключу сравнения.

Нюанс. Для пустого iterable нужен default, иначе возникает ValueError.

min(iterable, /, *, key=None[, default]); min(a, b, ...) — упрощённо; остальные варианты в документации

Выбрать минимальное значение или запись по ключу, например самое дешёвое предложение. Для пустого источника явно решите, нужен default или ошибка.

prices = [12, 7, 9]
print(min(prices))
print(min([], default='нет цен'))

Ожидаемый вывод:

7
нет цен
Официальная документация: min
nextФункция · Итерация

Получает следующий элемент обычного итератора.

Нюанс. Без default конец итерации вызывает StopIteration.

next(iterator[, default], /) — упрощённо; остальные варианты в документации

Получить один элемент без полного обхода. Без default исчерпанный итератор вызывает StopIteration; с default позволяет явно обработать пустой остаток.

values = iter([10])
print(next(values))
print(next(values, 'конец'))

Ожидаемый вывод:

10
конец
Официальная документация: next
objectТип / конструктор · Классы и атрибуты

Создаёт базовый объект, от класса которого наследуются остальные классы.

Нюанс. У экземпляра object нет __dict__, поэтому произвольные атрибуты ему не назначить.

object() — упрощённо; остальные варианты в документации

Создать отдельный маркер отсутствия значения в переносимом коде. Сравнивайте его через is; в Python 3.15 для именованного маркера также существует sentinel.

MISSING = object()
record = {'value': None}
print(record.get('missing', MISSING) is MISSING)
print(record.get('value', MISSING) is MISSING)

Ожидаемый вывод:

True
False
Официальная документация: object
octФункция · Числа

Записывает целое число восьмеричной строкой.

Нюанс. В результат входит префикс 0o.

oct(integer, /) — упрощённо; остальные варианты в документации

Представить целое в восьмеричном виде, например при чтении числовых масок. Префикс 0o отличает такую запись от десятичной.

value = 64
print(oct(value))
print(format(value, 'o'))

Ожидаемый вывод:

0o100
100
Официальная документация: oct
openФункция · Ввод и вывод

Открывает файл и возвращает объект для чтения или записи.

Нюанс. Режим w обнуляет существующий файл; ресурс удобно закрывать конструкцией with.

open(file, mode="r", ..., encoding=None, errors=None, newline=None) — упрощённо; остальные варианты в документации

Открыть файл с понятным режимом и кодировкой; with закрывает ресурс. Режим w перезаписывает содержимое. Пример работает только в собственной временной папке.

from pathlib import Path
from tempfile import TemporaryDirectory
with TemporaryDirectory() as folder:
    path = Path(folder) / 'note.txt'
    with open(path, 'w', encoding='utf-8') as stream:
        stream.write('Привет\n')
    with open(path, encoding='utf-8') as stream:
        print(stream.read(), end='')

Ожидаемый вывод:

Привет
Официальная документация: open
ordФункция · Текст и Unicode

Возвращает код одного символа Unicode или значение одного байта.

Нюанс. Строка, bytes или bytearray должны иметь длину ровно один.

ord(character, /) — упрощённо; остальные варианты в документации

Получить код одной кодовой точки Unicode или одного байта. Для строки из нескольких символов ord не подходит: сначала нужен явный выбор одного элемента.

letter = 'А'
print(ord(letter))
print(chr(ord(letter)) == letter)

Ожидаемый вывод:

1040
True
Официальная документация: ord
powФункция · Числа

Возводит число в степень, при необходимости вычисляя результат по модулю.

Нюанс. При целых аргументах отрицательная степень с mod означает поиск модульного обратного числа.

pow(base, exp, mod=None) — упрощённо; остальные варианты в документации

Вычислить степень; для целых со значением mod — результат по модулю без большого промежуточного числа. Отрицательная степень в модульной форме может находить обратный элемент.

base = 2
print(pow(base, 10))
print(pow(3, -1, 11))

Ожидаемый вывод:

1024
4
Официальная документация: pow
printФункция · Ввод и вывод

Выводит текстовые представления объектов в текстовый поток.

Нюанс. Параметры sep, end, file и flush передаются только по имени.

print(*objects, sep=" ", end="\n", file=None, flush=False) — упрощённо; остальные варианты в документации

Вывести значения человеку или в выбранный текстовый поток. sep разделяет аргументы, end завершает запись; это не метод сериализации произвольных структур.

columns = ['name', 'quantity']
print(*columns, sep=';')
print('готово', end='!\n')

Ожидаемый вывод:

name;quantity
готово!
Официальная документация: print
propertyДекоратор / тип · Классы и атрибуты

Создаёт управляемый атрибут с функциями чтения, записи и удаления.

Нюанс. Без setter присваивание этому свойству запрещено.

property(fget=None, fset=None, fdel=None, doc=None); обычно @property — упрощённо; остальные варианты в документации

Предоставить вычисляемый или управляемый атрибут объекта. Getter выполняется при обращении; без setter обычное присваивание этому свойству запрещено.

class Invoice:
    def __init__(self):
        self._cents = 1250
    @property
    def amount(self):
        return self._cents / 100
item = Invoice()
print(item.amount)
try:
    item.amount = 99
except AttributeError:
    print('Только чтение')

Ожидаемый вывод:

12.5
Только чтение
Официальная документация: property
rangeТип / конструктор · Контейнеры

Создаёт компактную неизменяемую последовательность целых чисел.

Нюанс. Правая граница stop не входит в последовательность, а step не может быть нулём.

range(stop, /); range(start, stop, step=1, /) — упрощённо; остальные варианты в документации

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

values = range(2, 10, 3)
print(list(values))
print(len(values))

Ожидаемый вывод:

[2, 5, 8]
3
Официальная документация: range
reprФункция · Представление и форматирование

Возвращает представление объекта для исследования и отладки.

Нюанс. Не каждое представление является выражением, пригодным для обратного восстановления объекта.

repr(object, /) — упрощённо; остальные варианты в документации

Получить представление для отладки, позволяющее увидеть кавычки и управляющие символы. Не рассчитывайте, что repr любого объекта можно безопасно восстановить через eval.

text = 'line\nend'
representation = repr(text)
print(representation)

Ожидаемый вывод:

'line\nend'
Официальная документация: repr
reversedТип / конструктор · Итерация

Создаёт итератор по элементам в обратном порядке.

Нюанс. Не сортирует значения и требует поддержки обратной итерации либо протокола последовательности.

reversed(sequence, /) — упрощённо; остальные варианты в документации

Обойти подходящую последовательность в обратном направлении без изменения исходного списка. Произвольный одноразовый итератор не всегда поддерживает reversed.

values = [1, 2, 3]
print(list(reversed(values)))
print(values)

Ожидаемый вывод:

[3, 2, 1]
[1, 2, 3]
Официальная документация: reversed
roundФункция · Числа

Округляет число до выбранной десятичной позиции.

Нюанс. Равноудалённые значения округляет к чётному; двоичная точность float влияет на результат.

round(number, ndigits=None) — упрощённо; остальные варианты в документации

Округлить по правилам типа. Для встроенных чисел половины обычно идут к чётному; двоичное представление float может отдельно влиять на десятичный результат.

values = [2.5, 3.5]
print([round(value) for value in values])
print(round(2.675, 2))

Ожидаемый вывод:

[2, 4]
2.67
Официальная документация: round
setТип / конструктор · Контейнеры

Создаёт изменяемое множество уникальных хешируемых элементов.

Нюанс. Порядок обхода не гарантируется, а литерал {} создаёт словарь.

set(iterable=(), /) — упрощённо; остальные варианты в документации

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

source = [3, 1, 3, 2]
unique = set(source)
print(sorted(unique))
print(2 in unique)

Ожидаемый вывод:

[1, 2, 3]
True
Официальная документация: set
setattrФункция · Классы и атрибуты

Назначает атрибуту объекта значение по строковому имени.

Нюанс. Объект должен разрешать назначение; имя не обязательно является допустимым идентификатором Python.

setattr(object, name, value, /) — упрощённо; остальные варианты в документации

Назначить атрибут по известному строковому имени, например при заполнении своего объекта. Для внешних данных используйте разрешённый список имён, а не произвольное назначение.

class Draft:
    pass
item = Draft()
setattr(item, 'title', 'Отчёт')
print(item.title)

Ожидаемый вывод:

Отчёт
Официальная документация: setattr
sentinelТип / конструктор · Типы и преобразования

Создаёт уникальный именованный маркер для отсутствующего или особого значения.

Нюанс. Появился в 3.15; маркеры истинны и для проверки их идентичности используют is.

sentinel(name, /, *, repr=None) — упрощённо; остальные варианты в документации

Начиная с Python 3.15 создать уникальный именованный маркер, отличающий отсутствие аргумента от None. Сравнивайте его через is; сам маркер истинный.

MISSING = sentinel('MISSING')
def describe(value=MISSING):
    if value is MISSING:
        return 'Не передано'
    return repr(value)
print(describe())
print(describe(None))
print(bool(MISSING))

Ожидаемый вывод:

Не передано
None
True
Официальная документация: sentinel
sliceТип / конструктор · Индексы и срезы

Создаёт объект, описывающий границы и шаг среза.

Нюанс. Сам объект ничего не вырезает; его передают индексируемому объекту.

slice(stop); slice(start, stop, step=None) — упрощённо; остальные варианты в документации

Сохранить правила среза в отдельном объекте и применить их к последовательности. indices помогает получить нормализованные границы для конкретной длины.

values = list(range(6))
selection = slice(1, 6, 2)
print(values[selection])
print(selection.indices(len(values)))

Ожидаемый вывод:

[1, 3, 5]
(1, 6, 2)
Официальная документация: slice
sortedФункция · Числа и порядок

Возвращает новый список элементов в отсортированном порядке.

Нюанс. Исходный контейнер сохраняется; элементы с одинаковым ключом сохраняют взаимный порядок.

sorted(iterable, /, *, key=None, reverse=False) — упрощённо; остальные варианты в документации

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

names = ['B', 'a', 'A']
print(sorted(names, key=str.casefold))
print(names)

Ожидаемый вывод:

['a', 'A', 'B']
['B', 'a', 'A']
Официальная документация: sorted
staticmethodДекоратор / тип · Классы и атрибуты

Создаёт метод без автоматически передаваемого экземпляра или класса.

Нюанс. При вызове Python не добавляет self или cls.

staticmethod(function); обычно @staticmethod — упрощённо; остальные варианты в документации

Связать вспомогательную функцию с классом, не передавая автоматически self или cls. Если связь с классом не помогает пониманию, достаточно обычной функции модуля.

class Validator:
    @staticmethod
    def positive(text):
        return int(text) > 0
print(Validator.positive('3'))
validator = Validator()
print(validator.positive('0'))

Ожидаемый вывод:

True
False
Официальная документация: staticmethod
strТип / конструктор · Типы и преобразования

Создаёт строковое представление объекта или декодирует байты.

Нюанс. Для декодирования bytes нужна кодировка; str(bytes) без неё даёт представление байтов.

str(object=""); str(bytes, encoding, errors="strict") — упрощённо; остальные варианты в документации

Получить строковое представление либо явно декодировать байты. str(bytes) без encoding даёт представление байтов, а не раскодированный текст.

data = 'Привет'.encode('utf-8')
print(str(data, encoding='utf-8'))
print(str(42))

Ожидаемый вывод:

Привет
42
Официальная документация: str
sumФункция · Числа

Суммирует элементы с начальным значением start.

Нюанс. Для соединения строк используется join(), поскольку строковый start здесь запрещён.

sum(iterable, /, start=0) — упрощённо; остальные варианты в документации

Сложить числовые значения с начальным итогом. Пустой источник возвращает start; для объединения строк используйте join, а не sum.

quantities = [2, 3, 4]
print(sum(quantities))
print(sum([], start=10))

Ожидаемый вывод:

9
10
Официальная документация: sum
superТип / конструктор · Классы и атрибуты

Создаёт посредник для поиска следующей реализации в цепочке наследования.

Нюанс. Следует порядку MRO, поэтому следующий класс не обязательно является прямым родителем.

super(); super(type, object_or_type=None) — упрощённо; остальные варианты в документации

Обратиться к следующей реализации по MRO в методе наследника. Это механизм согласованного наследования, а не просто сокращение имени непосредственного родителя.

class Base:
    def describe(self):
        return 'база'
class Report(Base):
    def describe(self):
        return super().describe() + ': отчёт'
print(Report().describe())

Ожидаемый вывод:

база: отчёт
Официальная документация: super
tupleТип / конструктор · Контейнеры

Создаёт неизменяемую последовательность из перебираемого объекта.

Нюанс. Вложенные изменяемые элементы остаются изменяемыми.

tuple(iterable=(), /) — упрощённо; остальные варианты в документации

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

source = [1, 2]
snapshot = tuple(source)
source.append(3)
print(snapshot)
print(tuple())

Ожидаемый вывод:

(1, 2)
()
Официальная документация: tuple
typeТип / конструктор · Классы и атрибуты

Возвращает тип объекта или создаёт класс из имени, баз и словаря.

Нюанс. Для проверки с учётом наследования предпочтительнее isinstance().

type(object); type(name, bases, namespace, **kwargs) — упрощённо; остальные варианты в документации

Узнать точный тип или создать класс программно. Для проверки наследования обычно нужен isinstance; для обычного описания класса читаемее конструкция class.

Report = type('Report', (object,), {'limit': 3})
item = Report()
print(type(item).__name__)
print(item.limit)
print(type(7).__name__)

Ожидаемый вывод:

Report
3
int
Официальная документация: type
varsФункция · Области видимости

Возвращает __dict__ объекта, а без аргумента работает как locals().

Нюанс. У объектов без __dict__ возникает TypeError, например у некоторых экземпляров со __slots__.

vars(); vars(object, /) — упрощённо; остальные варианты в документации

Посмотреть __dict__ собственного объекта либо локальные имена без аргумента. Объекты со slots или без __dict__ могут не поддерживать этот вызов.

class Settings:
    pass
settings = Settings()
settings.limit = 3
settings.mode = 'demo'
print(sorted(vars(settings).items()))

Ожидаемый вывод:

[('limit', 3), ('mode', 'demo')]
Официальная документация: vars
zipТип / конструктор · Итерация

Лениво объединяет элементы нескольких перебираемых объектов в кортежи.

Нюанс. По умолчанию обрезает до самой короткой последовательности; strict=True обнаруживает разную длину.

zip(*iterables, strict=False) — упрощённо; остальные варианты в документации

Сопоставить элементы нескольких источников по позиции. Обычно обход заканчивается на коротком; strict=True выявляет разную длину и доступен с Python 3.10.

pairs = list(zip(['A', 'B'], [1, 2], strict=True))
print(pairs)
try:
    list(zip([1, 2], [3], strict=True))
except ValueError:
    print('Разная длина')

Ожидаемый вывод:

[('A', 1), ('B', 2)]
Разная длина
Официальная документация: zip
__import__Функция · Импорт

Вызывает низкоуровневый механизм импорта модуля.

Нюанс. Для обычного динамического импорта документация рекомендует importlib.import_module().

__import__(name, globals=None, locals=None, fromlist=(), level=0) — упрощённо; остальные варианты в документации

Обратиться к низкоуровневому импорту при исследовании механизма. В обычном коде используйте import, а для динамического имени чаще importlib.import_module.

module = __import__('math')
print(module.sqrt(9))
print(module.ceil(2.4))

Ожидаемый вывод:

3.0
3
Официальная документация: __import__

Примеры и материалы с собой

Архив содержит наши самостоятельные примеры, тестовые данные, ожидаемый результат и README. Указанные команды установки и фрагменты REPL отделены от скриптов, которые проверены запуском.

Сверено с официальной документацией 2026-10-12. Стандартная библиотека и сторонние пакеты различаются; ссылки на источники есть в каждой главе.