# Неделя #3: Функции, модули, работа с базами данных.
# Задачи на неделю:
Внимательно изучить все материалы недели:
- Вебинар «Функции и декораторы».
- Методичку «Веб-фреймворки Python».
- Вебинар «Модули и пакеты. Django».
- Вебинар «Работа с базами данных».
Выполнить Задание #5 – Задание на функции.
Выполнить Задание #6 – Установка Django.
Выполнить Задание #7 – Модули.
Загрузить задание и отправить наставнику на проверку.
Выбрать проект, над которым будете работать на протяжении курса.
# Как все успеть
# 🗓 Понедельник
Работа над ошибками – внести правки (если были замечания от наставника) в Заданиях #2, #3, #4. Отправить на проверку наставнику.
Посмотреть вебинар «Функции и декораторы».
# 🗓 Вторник
Повторить материал из вебинара «Функции и декораторы».
Выполнить Задание #5 – Задание на функции.
Загрузить результат на GitHub.
# Задание #5. Задание на функции.
Обязательное задание:
Есть словарь – телефонный справочник “имя“: “телефонный номер“.
Пример:
{"Иван": "3916", "Катя": "1298", "Лена": "0010"}
Номер всегда четырехзначный.
Задание: Написать функцию, которая принимает аргумент “имя человека“ в виде строки (вы можете добавить и другие аргументы по своему усмотрению), и возвращает его номер телефона.
В случае, если такого человека в справочнике нет, функция возвращает строку "undefined".
Вызвать функцию для нескольких различных имен, обязательно для имени, которого в словаре-справочнике нет.
Убедиться в правильности работы.
Дополнительное задание:
Подумать о "чистоте" и эффективности функции. Как функция получает доступ к словарю-справочнику?
Выберите наилучший вариант:
- Словарь-справочник создается и хранится внутри функции
- Словарь-справочник это глобальный объект (переменная), внутри функции мы обращаемся к ней
- Словарь-справочник это глобальный объект (переменная), которая передается в функцию как параметр.
# 🗓 Среда
- Если при выполнении Задания #5 возникли вопросы, задать их наставнику в Telegram. Доработать задание и загрузить на GitHub.
- Ознакомиться с методичкой «Веб-фреймворки Python».
- Посмотреть вебинар «Модули и пакеты. Django».
# 🗓 Четверг
- Повторить материал из вебинара «Модули и пакеты. Django».
- Выполнить Задание #6 – Установка Django.
- Загрузить результат на GitHub.
# Задание #6. Установка Django.
- Установить Django.
- Создать проект и приложение. В этом проекте будете выполнять задания к вебинарам.
Важно! Для выпускного проекта у вас будет отдельный проект. Итого у вас будет два созданных проекта: один для заданий после вебинара, второй для Выпускного проекта.
# 🗓 Пятница
- Если при выполнении Задания #6 возникли вопросы, задать их наставнику в Telegram. Доработать задание и загрузить на GitHub.
- Посмотреть вебинар «Работа с базами данных».
# 🗓 Суббота
- Выполнить Задание #7 – Модули.
- Загрузить работу на GitHub и отправить ссылку на репозиторий наставнику.
- Выбрать Выпускной проект. На выбор вам предложено два варианта: Агрегатор авиабилетов и сервис авиакомпании. Подробно о проектах вы можете прочитать в блоге. А так же вы можете подробно посмотреть техническое описание проектов:
# Задание #7. Модули.
- Написать модуль Python создающий базу данных cities.db городов, как показано на схеме ниже в SQLite.

- Написать модуль Python, заполняющий базу данных городами из файла
- Поле таблицы region.name = столбец region_name в файле towns.csv.
- Поле таблицы city.name = столбец city в файле towns.csv.
- Для удобства парсинга towns.csv рекомендуется использовать модуль csv.
- Написать модуль Python, который выводит города Архангельской области
- Написать модуль Python, который выводит количество городов по регионам, используя выражение group by. Пример вывода:
- Алтайский край – 12
- Амурская область – 10
- …
# 🗓 Воскресенье
- Доработать задания недели, задать вопросы.
- Отправить ссылку на GitHub со всеми заданиями недели своему наставнику.
- Отдых.
Важно: Для продуктивного обучения нужно восстанавливать силы. Обязательно планируйте время на отдых!