May 29, 2024

Урок: Модули и пакеты

Модули и пакеты

Модули и пакеты в Python позволяют организовывать и структурировать код, делая его более управляемым и повторно используемым. В этом уроке мы рассмотрим, как импортировать модули, использовать стандартную библиотеку Python, а также создавать собственные модули и пакеты.

Импорт модулей

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

Пример импорта модуля
import math

print(math.sqrt(16))  # Выводит: 4.0
print(math.pi)        # Выводит: 3.141592653589793

В этом примере импортируется стандартный модуль math, который предоставляет математические функции и константы. Затем используются функции sqrt и pi из этого модуля.

Можно импортировать конкретные функции или переменные из модуля:

Пример импорта конкретных функций из модуля
from math import sqrt, pi

print(sqrt(25))  # Выводит: 5.0
print(pi)        # Выводит: 3.141592653589793

Стандартная библиотека Python

Python поставляется с обширной стандартной библиотекой, которая включает модули для работы с различными задачами, такими как обработка строк, файловый ввод/вывод, работа с интернет-протоколами и многим другим.

Пример использования модуля datetime из стандартной библиотеки
import datetime

current_date = datetime.datetime.now()
print(current_date)  # Выводит текущую дату и время

# Пример использования модуля random
import random

random_number = random.randint(1, 100)
print(random_number)  # Выводит случайное число от 1 до 100

В этом примере используется модуль datetime для получения текущей даты и времени, а также модуль random для генерации случайного числа.

Создание собственных модулей и пакетов

Вы можете создавать свои собственные модули и пакеты для организации кода. Модуль — это просто файл Python (.py), который содержит функции, классы и переменные. Пакет — это директория, содержащая модули и специальный файл __init__.py.

  1. Создание собственного модуля:

Создайте файл my_module.py со следующим содержимым:

my_module.py

def greet(name):
    return f"Hello, {name}!"

def add(a, b):
    return a + b

Теперь можно использовать этот модуль в другом файле:

main.py

import my_module

print(my_module.greet("Alice"))  # Выводит: Hello, Alice!
print(my_module.add(5, 3))       # Выводит: 8
  1. Создание собственного пакета:

Создайте структуру директорий для пакета:

my_package/
    __init__.py
    module1.py
    module2.py

Файл __init__.py может быть пустым или содержать код инициализации пакета. В module1.py и module2.py можно определить функции и классы.

my_package/module1.py

def function1():
    return "Function 1 from module 1"

# my_package/module2.py
def function2():
    return "Function 2 from module 2"

Теперь можно использовать пакет в другом файле:

main.py

from my_package import module1, module2

print(module1.function1())  # Выводит: Function 1 from module 1
print(module2.function2())  # Выводит: Function 2 from module 2

Практическое задание

  1. Создайте модуль с функцией, которая принимает список чисел и возвращает их среднее значение.
  2. Импортируйте модуль math и используйте функцию factorial для вычисления факториала числа.
  3. Создайте пакет с двумя модулями: один для работы со строками, другой — с числами. В первом модуле создайте функцию для подсчета количества гласных в строке, во втором — функцию для нахождения максимального числа в списке.
Пример выполнения практического задания

# Задание 1
# my_average_module.py
def average(numbers):
    return sum(numbers) / len(numbers)

# main.py
import my_average_module

numbers = [10, 20, 30, 40, 50]
print(my_average_module.average(numbers))  # Выводит: 30.0

# Задание 2
import math

print(math.factorial(5))  # Выводит: 120

# Задание 3
# my_package/string_module.py
def count_vowels(s):
    vowels = "aeiouAEIOU"
    return sum(1 for char in s if char in vowels)

# my_package/number_module.py
def max_number(numbers):
    return max(numbers)

# main.py
from my_package import string_module, number_module

print(string_module.count_vowels("Hello World"))  # Выводит: 3
print(number_module.max_number([10, 20, 30, 40, 50]))  # Выводит: 50

В первом задании создается модуль с функцией, которая вычисляет среднее значение списка чисел. Во втором задании используется функция factorial из модуля math для вычисления факториала числа. В третьем задании создается пакет с двумя модулями: один для работы со строками, другой — с числами. Функции из этих модулей используются для подсчета количества гласных в строке и нахождения максимального числа в списке.

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