Задачи на модули в Python с подробными примерами решений

Раздел: Python -> Учебные задачи

Задачи на модули в Python: импорт и использование

Как эффективно импортировать модуль и использовать его функции?

Основной и наиболее распространённый способ - импорт всего модуля с помощью инструкции import module. После этого функции и атрибуты вызываются через точку: module.function(). Это делает код читаемым, избегает конфликтов имён и явно указывает источник функции.

import math
result = math.sqrt(25)
print(result)

алгоритм решения задачи python (алгоритм решения задачи на python)

5.0

базовые задачи python (базовые задачи python)

Типичные ошибки:

  • NameError - если забыть импортировать модуль.
  • AttributeError - при неправильном имени функции (например, math.sqr).
  • Конфликт имён, если модуль имеет функции с такими же именами как в коде (решается импортом с псевдонимом).

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

Инструкция from module import function позволяет импортировать конкретные имена. Это удобно, когда модуль большой, а нужны лишь отдельные функции.

from math import sqrt, pi
print(sqrt(16))
print(pi)

задачи для обучения python (задачи для обучения python)

4.0
3.141592653589793

задачи на классы в python (задачи на классы в python)

Проблема:

При таком импорте может возникнуть конфликт имён, если в текущей области видимости уже определена переменная или функция с тем же именем. Рекомендуется использовать такой импорт только для небольших проектов или когда имена уникальны.

Как импортировать модуль с сокращённым именем (псевдонимом)?

Для удобства часто используют псевдоним через import module as alias. Это сокращает код и помогает избежать конфликтов.

import datetime as dt
now = dt.datetime.now()
print(now)

множество python задачи (задачи на множества в python)

2025-03-26 15:30:00.123456

задачи на модули python (задачи на модули в python)

Ошибки:

  • Забыть, что используется псевдоним, и обратиться к исходному имени модуля - NameError.
  • При импорте с псевдонимом в Jupyter Notebook повторный импорт может не обновить модуль, если он изменён (требуется import importlib; importlib.reload(module)).

Как создать и импортировать собственный модуль?

Собственный модуль - это обычный файл .py с расширением. Поместите его в ту же папку, что и основной скрипт, или добавьте путь в sys.path.

# файл mymodule.py
def hello(name):
    return f"Привет, {name}!"

# основной скрипт
import mymodule
print(mymodule.hello("Анна"))

задачи на операторы в python (задачи на операторы в python)

Привет, Анна!

задачи на последовательности python (задачи на последовательности в python)

Типичные ошибки:

  • ModuleNotFoundError - если модуль не найден. Проверьте путь и наличие файла.
  • Циклический импорт - когда два модуля импортируют друг друга. Решается переносом импорта внутрь функций или реструктуризацией кода.
  • Изменения в модуле не применяются, если он уже импортирован (в сессии интерпретатора). Используйте importlib.reload() после изменений.

Как использовать конструкцию if __name__ == "__main__" для защиты кода?

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

# module.py
def add(a, b):
    return a + b

if __name__ == "__main__":
    print("Тест: 2+3 =", add(2, 3))

задачи на списки python (задачи на списки в python)

При импорте module - ничего не выводится.
При запуске python module.py:
Тест: 2+3 = 5

пробелы python задача (задача на пробелы в строке python)

Ошибка:

Если забыть эту конструкцию, при импорте модуля выполнится весь код, что может привести к нежелательным эффектам (например, вывод логов, запрос ввода).

Как работать со встроенными модулями для случайных чисел (random)?

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

import random

dice = random.randint(1, 6)
element = random.choice(['яблоко', 'банан', 'вишня'])
deck = list(range(10))
random.shuffle(deck)

print(f"Кубик: {dice}")
print(f"Случайный фрукт: {element}")
print(f"Перемешанный список: {deck[:5]}")

задачи на if else python (задачи на условные операторы if-else в python)

Кубик: 4
Случайный фрукт: банан
Перемешанный список: [7, 2, 9, 0, 3]

задачи на работу с файлами python (задачи на работу с файлами в python)

Частая ошибка:

random.randint(1,6) - границы включены. Но если случайно использовать random.random() (возвращает float от 0 до 1), то нужно преобразование. Путаница с функциями randrange, uniform.

Как импортировать модуль из пакета (подмодуль)?

Пакет - это папка с файлом __init__.py. Подмодули импортируются через точку.

# структура: package/submodule.py
def say_hi():
    return "Привет из подмодуля"

# импорт:
from package import submodule
print(submodule.say_hi())

# или:
import package.submodule as sub
print(sub.say_hi())

задачи на функции в python (задачи на функции в python)

Привет из подмодуля
Привет из подмодуля

Проблема:

Если забыть создать файл __init__.py (даже пустой), Python не распознает папку как пакет (для версий до 3.3) или может работать некорректно. Для Python 3.3+ __init__.py не обязателен, но рекомендуется для совместимости.

- Python 3 произведение чисел (произведение чисел в python 3)
- напиши условие задачи python (написание условия задачи на python)
- объяснения python задача (объяснение задачи на python)

Расширенные примеры работы с модулями Python

Пример 1. Динамический импорт модуля через importlib

Иногда имя модуля заранее неизвестно (например, задаётся пользователем). Используется importlib.import_module().

Пример
import importlib

module_name = "math"  # может быть получено, например, из input()
mod = importlib.import_module(module_name)
print(mod.sqrt(9))
3.0

Пример 2. Перезагрузка модуля после его изменения (reload)

В интерактивной сессии (Jupyter, IPython) модуль не обновляется автоматически. Принудительная перезагрузка:

Пример
# Предположим, файл mymodule.py изменён
import mymodule
print(mymodule.hello("Мир"))  # старая версия

import importlib
importlib.reload(mymodule)
print(mymodule.hello("Мир"))  # новая версия
Привет, Мир!
Привет, Мир! (если функция не менялась)

Пример 3. Импорт всех имён из модуля (звёздочка) и её риски

Конструкция from module import * импортирует все имена из модуля (кроме тех, что начинаются с подчёркивания). Это может затереть существующие переменные.

Пример
from math import *
print(sin(0))
print(cos(0))
0.0
1.0

Проблема:

Такой импорт не рекомендуется в больших проектах, так как сложно отследить, откуда взялась функция. В модуле может быть определена переменная pi, которая переопределит вашу.

Пример 4. Использование модуля sys для работы с аргументами командной строки

Модуль sys предоставляет доступ к аргументам скрипта (sys.argv). Первый элемент (индекс 0) - имя скрипта.

Пример
# script.py
import sys
if len(sys.argv) > 1:
    print("Привет, " + sys.argv[1])
else:
    print("Запуск: python script.py <имя>")

# Вызов: python script.py Анна
# Результат: Привет, Анна
Привет, Анна

Пример 5. Создание пакета с несколькими модулями и __init__.py

Структура пакета:

Пример
mypackage/
  __init__.py
  module1.py
  module2.py

Содержимое module1.py:

Пример
def foo():
    return "foo from module1"

Импорт в основном скрипте:

Пример
from mypackage import module1
print(module1.foo())

# или через __init__.py, который может импортировать подмодули:
# __init__.py:
# from . import module1, module2
# тогда import mypackage даёт доступ к mypackage.module1.foo()
foo from module1

Пример 6. Обработка ошибки импорта с try/except

Иногда модуль может отсутствовать. Обрабатывайте это, чтобы не прерывать программу.

Пример
try:
    import numpy as np
    print("NumPy импортирован")
except ImportError:
    print("Модуль NumPy не установлен, используем стандартные средства")
    import math as np  # подмена
Модуль NumPy не установлен, используем стандартные средства

Пример 7. Работа с модулем datetime: форматирование и парсинг дат

Пример
from datetime import datetime, timedelta

now = datetime.now()
print("Текущая дата:", now.strftime("%Y-%m-%d %H:%M:%S"))
tomorrow = now + timedelta(days=1)
print("Завтра:", tomorrow.strftime("%d.%m.%Y"))

# Парсинг строки
date_str = "2025-12-31"
date_obj = datetime.strptime(date_str, "%Y-%m-%d")
print("Парсеная дата:", date_obj)
Текущая дата: 2025-03-26 15:30:00
Завтра: 27.03.2025
Парсеная дата: 2025-12-31 00:00:00

Пример 8. Использование модуля os для работы с файловой системой

Пример
import os

current_dir = os.getcwd()
print("Текущая директория:", current_dir)

files = os.listdir('.')
print("Файлы в папке:", files[:5])

# Создание папки
if not os.path.exists('test_folder'):
    os.mkdir('test_folder')
    print("Папка создана")

# Удаление (осторожно!)
# os.rmdir('test_folder')
Текущая директория: /home/user/project
Файлы в папке: ['main.py', 'utils.py', 'README.md']
Папка создана

Задачи на модули в Python - comments

En
задачи на модули python (python)