Начало работы со стандартными библиотеками Python

Раздел: Python -> Общие сведения о библиотеках

Библиотеки (модули) в Python представляют собой наборы готовых функций и инструментов для решения типовых задач. Стандартная библиотека Python включает множество модулей, которые не требуют дополнительной установки. Они позволяют значительно упростить написание кода. Для использования любого модуля его необходимо импортировать с помощью ключевого слова import. Например, import math предоставляет доступ к математическим функциям.

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

Как выполнять математические операции с числами?

Модуль math содержит функции для округления, тригонометрии, логарифмов и константы (pi, e). Он применяется в научных и инженерных расчетах.

import math

print(math.pi)          # вывод числа pi
print(math.sqrt(25))    # квадратный корень из 25
print(math.floor(4.7))  # округление вниз до 4
print(math.ceil(4.2))   # округление вверх до 5

примеры библиотек python (примеры библиотек python)

Пояснения: функция sqrt() возвращает квадратный корень. floor() и ceil() округляют до ближайшего целого вниз и вверх соответственно. Для вычисления синуса угла в радианах используется math.sin().

Возможные проблемы:

Если передать отрицательное число в sqrt(), возникнет ValueError. Решение: использовать модуль cmath для комплексных чисел. Также путаница между math.floor() и встроенной функцией int() – int() просто отбрасывает дробную часть, а floor() округляет вниз для отрицательных чисел.

Как генерировать случайные числа или выбирать случайные элементы?

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

import random

print(random.randint(1, 10))      # случайное целое от 1 до 10 включительно
colors = ['красный', 'зеленый', 'синий']
print(random.choice(colors))      # случайный элемент из списка
random.shuffle(colors)            # перемешивание списка
print(colors)

простые библиотеки python (простые библиотеки python для начинающих)

Пояснения: randint(a, b) включает обе границы. choice() выбирает один элемент. shuffle() изменяет исходный список.

Возможные проблемы:

Для отладки может потребоваться воспроизводимость результатов. В таком случае устанавливается фиксированное начальное значение с помощью random.seed(42). Без seed каждый запуск даёт разные числа. Также следует помнить, что random не подходит для криптографических задач – для этого существует модуль secrets.

Как работать с датами и временем в Python?

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

from datetime import datetime, timedelta

now = datetime.now()                            # текущая дата и время
print(now.strftime("%Y-%m-%d %H:%M:%S"))        # форматированный вывод
delta = timedelta(days=5)
future = now + delta                            # дата через 5 дней
print(future.strftime("%Y-%m-%d"))

Пояснения: strftime() преобразует дату в строку по заданному формату. timedelta представляет разницу во времени. Сложение даты и timedelta даёт новую дату.

Возможные проблемы:

Объекты datetime могут быть 'наивными' (без временной зоны) или 'осведомленными' (с временной зоной). Путаница между ними приводит к ошибкам. Для работы с временными зонами рекомендуется использовать модуль pytz. Также неправильный формат строки в strftime вызывает исключение KeyError.

Как взаимодействовать с операционной системой?

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

import os

print(os.getcwd())                # текущая рабочая директория
print(os.listdir('.'))            # список файлов и папок в текущей директории
path = os.path.join('folder', 'file.txt')  # правильное объединение путей
print(path)
os.mkdir('new_folder')            # создание новой папки

Пояснения: os.getcwd() возвращает путь к текущей папке. os.listdir() выводит содержимое каталога. os.path.join() формирует путь с учётом разделителя ОС. os.mkdir() создаёт папку.

Возможные проблемы:

На Windows пути используют обратную косую черту, что может вызвать ошибки при экранировании. os.path.join() решает эту проблему. Также при отсутствии прав доступа возникает PermissionError. Для проверки существования файла используется os.path.exists().

Как сохранять и загружать данные в формате JSON?

Модуль json предназначен для сериализации структур данных Python в формат JSON и обратно. Он широко используется для обмена данными с веб-сервисами и хранения конфигураций.

import json

data = {'name': 'Alice', 'age': 30, 'is_student': False}
json_str = json.dumps(data)          # преобразование в строку JSON
print(json_str)
parsed = json.loads(json_str)        # обратное преобразование
print(parsed['name'])

Пояснения: dumps() возвращает строку, loads() парсит строку в объект Python. Для работы с файлами используются dump() и load().

Возможные проблемы:

При попытке сериализовать объекты, не поддерживаемые по умолчанию (например, datetime), возникает TypeError. Решение: определить функцию преобразования в параметре default. Также ошибки парсинга (JSONDecodeError) возникают при невалидном JSON. Следует проверять данные перед загрузкой.

Расширенные примеры использования

Пример
import math
a = 3
b = 4
c = math.hypot(a, b)  # гипотенуза: sqrt(a^2 + b^2)
print(c)              # 5.0
angle = math.atan2(b, a)  # угол в радианах
print(math.degrees(angle)) # перевод в градусы: ~53.13
5.0
53.13010235415599

Пример вычисления гипотенузы и угла. hypot удобен для расстояний, atan2 возвращает угол от оси x.

Пример
import random
# Выбор 3 уникальных чисел из диапазона
sample = random.sample(range(100), 3)
print(sample)
# Генерация случайного числа с нормальным распределением (среднее 0, стд откл 1)
gauss_val = random.gauss(0, 1)
print(gauss_val)
[42, 17, 89]
0.345678

sample не изменяет исходную последовательность. gauss полезен для моделирования случайных величин.

Пример
from datetime import datetime
date_str = "2023-10-05 14:30:00"
date_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(date_obj)
now = datetime.now()
diff = now - date_obj
print(diff.days)  # количество дней
2023-10-05 14:30:00
180

strptime парсит строку по формату. Разница двух datetime даёт timedelta.

Пример
import os
for root, dirs, files in os.walk('.'):
    for file in files:
        if file.endswith('.py'):
            print(os.path.join(root, file))
./main.py
./subfolder/utils.py

os.walk рекурсивно обходит все подкаталоги, возвращает текущий путь, список папок и файлов.

Пример
import json
data = {'name': 'Bob', 'age': 25, 'hobbies': ['reading', 'coding']}
with open('data.json', 'w') as f:
    json.dump(data, f, indent=4)
with open('data.json', 'r') as f:
    loaded = json.load(f)
print(loaded)
{'name': 'Bob', 'age': 25, 'hobbies': ['reading', 'coding']}

indent делает вывод читаемым. dump/load работают с файловыми объектами.

Простые библиотеки Python для начинающих - comments

En
простые библиотеки python (python)