Перейти к содержанию
Educora
Средний15 мин10 / 42

Модули и стандартная библиотека

Пользуйся готовыми инструментами: import, модули math, random и datetime и другие полезные части стандартной библиотеки.

Проверь себя
В этом уроке ты узнаешь
  • Подключать модуль через import и from ... import
  • Применять основные функции модулей math и random
  • Выполнять вычисления с датами с помощью datetime

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

import и модуль math

Определение
Модуль

Отдельный файл Python с функциями, переменными и классами. Команда import подключает модуль к программе, а к его частям обращаются через точку: math.sqrt.

Python
import math

print(math.sqrt(144))
print(math.pi)
print(math.ceil(4.2), math.floor(4.8))
print(math.gcd(24, 36))
▸ Ожидаемый результат
12.0
3.141592653589793
5 4
12

ceil округляет число вверх, floor — вниз, а gcd находит наибольший общий делитель двух чисел. Если из модуля нужны лишь несколько имён, их можно взять напрямую через from ... import — тогда писать math. не нужно:

Python
from math import sqrt, pi

radius = 3
area = pi * radius ** 2
print(f'Circle area: {area:.2f}')
print(sqrt(2))
▸ Ожидаемый результат
Circle area: 28.27
1.4142135623730951

random: случайные числа

В играх, викторинах и тестах нужна случайность. Самые популярные функции модуля random: randint(a, b) — случайное целое число от a до b (оба включительно), choice(list) — случайный элемент списка, shuffle(list) — перемешивание списка.

Python
import random

for i in range(3):
    print(f'Roll {i + 1}: {random.randint(1, 6)}')
Запусти код несколько раз — каждый раз результат будет другим.

Иногда случайные результаты нужно повторить — например, при тестировании программы. random.seed() задаёт начальную точку последовательности: при одном и том же «зерне» «случайные» значения каждый раз получаются одинаковыми.

Python
import random

random.seed(42)
print(random.randint(1, 6))
print(random.choice(['rock', 'paper', 'scissors']))
cards = [1, 2, 3, 4, 5]
random.shuffle(cards)
print(cards)
▸ Ожидаемый результат
6
rock
[2, 4, 5, 3, 1]

datetime: дата и время

В Азербайджане учебный год начинается 15 сентября — в День знаний. Сколько дней от этого дня до Нового года? В модуле datetime класс date обозначает дату, а timedelta — промежуток времени. Разность двух дат — это timedelta, а его атрибут days содержит количество дней.

Python
from datetime import date, timedelta

start = date(2026, 9, 15)
new_year = date(2027, 1, 1)
print(start)
print(start.strftime('%d.%m.%Y'))
print((new_year - start).days, 'days until New Year')
print(start + timedelta(days=100))
▸ Ожидаемый результат
2026-09-15
15.09.2026
108 days until New Year
2026-12-24

strftime превращает дату в строку нужного формата: %d — день, %m — месяц, %Y — год. А date.today() даёт сегодняшнюю дату — поэтому результат кода ниже каждый день разный:

Python
from datetime import date

today = date.today()
print('Today is', today.strftime('%d.%m.%Y'))
print('Days left this year:', (date(today.year, 12, 31) - today).days)

Что ещё есть в стандартной библиотеке?

МодульДля чего
statisticsсреднее, медиана, мода
collectionsдополнительные структуры данных, например Counter
stringготовые наборы символов: буквы, цифры
jsonчтение и запись данных в формате JSON
timeизмерение времени, ожидание
Python
import statistics
from collections import Counter

scores = [7, 9, 6, 9, 10, 8, 9]
print(round(statistics.mean(scores), 2))
print(statistics.median(scores))

votes = ['pizza', 'plov', 'plov', 'dolma', 'plov', 'pizza']
print(Counter(votes).most_common(2))
▸ Ожидаемый результат
8.29
9
[('plov', 3), ('pizza', 2)]
Опрос в классе о любимой еде: Counter считает голоса одной строкой.
Задание

95 учеников едут на экскурсию, в автобусе 40 мест. Импортируй модуль math и выведи две строки: 1) сколько нужно автобусов (через math.ceil), 2) площадь круглого бассейна радиусом 3,5 м — с двумя знаками после точки (через math.pi).

Задание · Python
pupils = 95
seats = 40
radius = 3.5
# 1) import math
# 2) print how many buses are needed
# 3) print the area of the pool with 2 digits after the point
▸ Ожидаемый результат
3
38.48
Задание

С помощью from ... import импортируй mean и median из модуля statistics и Counter из collections. Для списка grades выведи три строки: среднее, медиану и самую частую оценку в виде Most common: 3 (2 times) (разумеется, с настоящими числами).

Задание · Python
grades = [5, 4, 5, 3, 5, 4, 2, 5]
# 1) import mean, median and Counter
# 2) print the mean and the median
# 3) print the most common grade like: Most common: 3 (2 times)
▸ Ожидаемый результат
4.125
4.5
Most common: 5 (4 times)

Главное

  • Модуль — файл с готовыми функциями; import math подключает его, а math.sqrt обращается к его части.
  • from math import sqrt берёт имя напрямую, и точка больше не нужна.
  • random.randint, choice, shuffle дают случайность, а seed делает результат воспроизводимым.
  • date хранит даты; разность двух дат — timedelta, а .days даёт число дней.
  • Не называй свой файл именем стандартного модуля.

Проверь себя

Вопросов: 10. Каждый правильный ответ приносит XP.

1 / 10
Как подключить из модуля math только sqrt?