← Вернуться к карте тем
Alterna · глава 41 · страница 41.1

Импорты и математика

Импорт сообщает читателю, откуда взята операция. Хорошее имя модуля делает формулу прозрачной.

import math оставляет на виду происхождение функции: math.gcd(a, b) читается точнее, чем безымянный вызов.

стандартная библиотека10-11 классЕГЭ: алгоритмическая опора
01

Три формы импорта

ЗаписьКогда уместнаРиск
import mathОбычный выбор: источник функции виден у каждого вызова.Почти нет.
from math import gcdОдна-две очень частые функции в коротком модуле.Становится менее видно происхождение имени.
import math as mТолько если сокращение принято в проекте и очевидно читателю.Неудачный псевдоним маскирует смысл.
Важно

from math import * не используй: имена могут столкнуться со встроенными функциями или переменными программы.

02

Инструменты для чисел

math

gcd, lcm, isqrt, comb, perm, ceil и floor.

decimal

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

fractions

Fraction хранит рациональное число точно: удобно для объяснений и символьных расчетов.

statistics

Среднее, медиана, мода. Для простого среднего обычно достаточно sum(values) / len(values).

random

Генерирует тестовые данные и моделирует случайность. Не подходит для паролей и секретов.

operator

itemgetter и attrgetter дают читаемые ключи сортировки, но обычная lambda часто яснее.

03

Комбинаторика без самодельных факториалов

Число способов выбрать k объектов из n без порядка равно math.comb(n, k). Перестановки с порядком дает math.perm(n, k). Функции возвращают целое число и корректно обрабатывают большие значения.

import math
    
04

Быстрая проверка

Какой вызов возвращает целую часть квадратного корня и не теряет точность на больших целых?