Начало работы со стандартными библиотеками 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 работают с файловыми объектами.