Урок 84. MongoDB и Python. Модули

📁 Блок: Базы данных и модули ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя
#close #find #sort #list #in #import #from

⚡ Кратко: задания

Тест и шесть практических задач: от подключения к MongoDB до создания собственного пакета.

  1. Подключись к MongoDB и проверь соединение.
  2. Добавь и найди документы.
  3. Обнови и удали документы.
  4. Обработай ошибки pymongo.
  5. Создай свой модуль и используй if __name__ == "__main__".
  6. Собери простой пакет с __init__.py.

📝 Задания для закрепления

Викторина

1

Способы добавления данных

Какими способами можно добавить данные в коллекцию MongoDB?

  • a. insert_one()
  • b. insert_many()
  • c. add_documents()
  • d. create_one()
2

Тип возвращаемого значения find()

Какой тип данных возвращается методом find()?

  • a. Список
  • b. Курсор (итератор)
  • c. Генератор
  • d. Строка JSON
  • e. Словарь
3

Сопоставь термин и определение

Сопоставьте термины с их определениями:

  • 1. Модуль
  • 2. Пакет
  • 3. __pycache__
  • 4. __init__.py
  • a. Папка с модулями и __init__.py, объединёнными по смыслу
  • b. Любой .py файл с переменными, функциями, классами и т.д.
  • c. Файл, обозначающий папку как пакет и управляющий импортом
  • d. Папка, где Python сохраняет байт-код модулей
4

Назначение .pyc

Что делает файл __pycache__/math_utils.cpython-312.pyc?

  • a. Хранит текст модуля в сжатом виде
  • b. Является скомпилированной версией .py файла
  • c. Позволяет запускать программу без Python
  • d. Содержит переменные окружения

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

1

Подключение и проверка

Уровень: начальный

Напишите программу, которая подключается к MongoDB, выполняет команду ping и выводит сообщение об успешном подключении. Закройте соединение в блоке finally.

2

Добавление и вывод товаров

Уровень: начальный

Выберите базу ich_edit и коллекцию products_training. Добавьте три товара с полями name, price и stock. Выведите ID всех добавленных документов.

3

Поиск и проекция

Уровень: средний

Найдите все товары, у которых price меньше 5, отсортируйте по возрастанию цены и выведите только поля name и price (без _id).

4

Обновление и удаление

Уровень: средний

Увеличьте цену всех товаров на 10%. Затем удалите все товары, у которых stock равен 0. Выведите количество обновлённых и удалённых документов.

5

Обработка ошибок

Уровень: средний

Напишите программу, которая пытается подключиться к MongoDB с неверным паролем. Перехватите исключения ConnectionFailure и OperationFailure и выведите понятные сообщения.

6

Создание модуля и пакета

Уровень: выше среднего

Создайте модуль string_utils.py с функциями count_words и reverse. Добавьте блок if __name__ == "__main__" для тестирования функций. Затем создайте пакет tools с файлом __init__.py, который импортирует обе функции. Напишите main.py, который использует пакет tools.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Какой стиль имён переменных обычно рекомендует PEP 8?

Вопрос 2

Зачем использовать f-strings в современном Python?

Вопрос 3

Когда полезен ранний возврат из функции?

Вопрос 4

Что делает аннотация типа в Python?

Вопрос 5

Как лучше обрабатывать ожидаемую ошибку преобразования?

Вопрос 6

Чем отличается = от ==?

Вопрос 7

Что делает print()?