Описание ситуации: Вы продолжаете работать стажером в компании "Технологии будущего", где вас попросили помочь автоматизировать несколько задач. На одном из утренних совещаний вы обсуждаете с коллегой, Марией, задачи, связанные с организацией и обработкой данных. Мария объясняет, что для эффективного выполнения повседневных задач в Python часто используют такие структуры данных, как списки и словари.
Объяснение терминов: Мария рассказывает: "Списки — это упорядоченные коллекции, в которых можно хранить различные элементы, например, данные о сотрудниках или товарах. Списки легко изменять, добавлять или удалять элементы, сортировать их и выполнять поиск. Важно помнить, что элементы в списках имеют нумерацию, начиная с нуля, и доступ к элементам осуществляется по их индексу.
Словари же — это коллекции, которые работают по принципу 'ключ-значение'. Например, можно хранить данные о клиентах, где ключом будет ID клиента, а значением — его информация. В отличие от списков, у словарей нет порядка, и доступ к данным осуществляется по ключу, а не по индексу. Это делает словари удобными для хранения информации, где каждому ключу соответствует уникальное значение."
После пояснений Марии, вам предстоит самостоятельно создать и использовать списки и словари для решения задач, которые помогут автоматизировать работу других отделов компании.
Проблемная ситуация: Освоить создание и считывание списков, а также методы работы со списками. Понять отличия между списками и словарями.
Исходные условия: Работа выполняется в Jupyter Notebook. Каждое задание выполняется в отдельной ячейке.
Форма выполнения задания: Индивидуальная работа, выполнение задач с обсуждением результатов.
Программные инструменты для выполнения:
- ПО: Jupyter Notebook
- Язык программирования: Python
Требования к результату выполнения задания: Предоставить .ipynb файл с выполненными заданиями, содержащий комментарии и примеры вывода данных.
Создайте файл в Jupiter notebook, назовите его фамилия_№группы.
Выберите оценку проделанной работы:
Запрос от отдела кадров: "Для подготовки отчетов нам нужен список всех сотрудников. Можешь создать список с именами сотрудников?"
Создайте список employees, содержащий имена сотрудников. Используйте метод print() для вывода списка. Убедитесь, что список сформирован корректно.
Выберите оценку проделанной работы:
Запрос от отдела аналитики: "Нам нужно добавить в список новые данные. Можешь добавить сотрудников к существующему списку?"
Используйте метод .append() для добавления нового сотрудника в список. Затем выведите обновленный список.
Выберите оценку проделанной работы:
Запрос от отдела управления запасами: "У нас есть список товаров. Можешь посчитать, сколько товаров находится в списке?"
Используйте функцию len() для определения количества элементов в списке products и выведите результат.
Выберите оценку проделанной работы:
Запрос от отдела маркетинга: "Нам нужно определить наиболее популярный продукт. Можешь отсортировать список товаров по популярности?"
Используйте метод .sort() для сортировки списка товаров products по возрастанию или убыванию. Выведите отсортированный список.
Выберите оценку проделанной работы:
Запрос от финансового отдела: "Нам нужно выделить основные категории расходов. Можешь создать словарь с категориями и суммой расходов по каждой категории?"
Создайте словарь expenses, где ключами будут категории расходов, а значениями — суммы. Выведите словарь на экран.
Выберите оценку проделанной работы:
Запрос от отдела логистики: "Мы работаем с товарами на складе. Можешь сделать программу, которая добавляет новый товар и обновляет его количество, если товар уже есть?"
Создайте словарь warehouse, где ключи — это названия товаров, а значения — их количество. Напишите скрипт, который добавляет товар или обновляет его количество, если он уже есть в словаре.
Выберите оценку проделанной работы:
Запрос от отдела IT: "Нам нужно найти информацию по конкретному ключу в базе данных. Можешь создать программу для поиска значений по ключу?"
Используйте словарь database, где ключи — это ID, а значения — информация о клиенте. Напишите программу, которая запрашивает ключ и выводит соответствующее значение, если оно существует.
Выберите оценку проделанной работы:
Запрос от отдела продаж: "Для анализа нам нужно посчитать, сколько раз каждый продукт был продан. Можешь создать словарь для подсчета?"
Создайте пустой словарь sales_count. Используйте список с названиями проданных товаров и заполните словарь, считая количество продаж каждого продукта. Выведите результат.
Выберите оценку проделанной работы:
Запрос от отдела клиентской поддержки: "Нам нужно организовать информацию по клиентам. Можешь создать словарь, где ключи — ID клиентов, а значения — их имена?"
Создайте словарь clients, в котором каждому ключу (ID клиента) соответствует имя клиента. Добавьте несколько записей в словарь и выведите его на экран.
Выберите оценку проделанной работы:
Запрос от отдела аналитики: "Можешь удалить данные по товарам, которые закончились? Используй список, чтобы удалить их из словаря."
Создайте словарь stock с товарами и их количеством. Используя цикл, удалите товары, у которых количество равно нулю, и выведите обновленный словарь.
Выберите оценку проделанной работы:
Запрос от руководителя: "Для общего отчета мне нужно объединить списки сотрудников из нескольких отделов. Можешь написать программу для объединения списков?"
Используя два или более списков сотрудников, объедините их с помощью метода .extend() или оператора +.
Выведите результат, убедившись, что списки объединились корректно.
Выберите оценку проделанной работы:
Финальная задача от отдела исследований: "Мы хотим получить полную информацию по продажам. Можешь создать программу, которая выводит данные по каждому продукту и общей сумме продаж?"
Создайте список продуктов и их продаж, используя словарь, где каждому продукту соответствует его сумма продаж. Используйте цикл для вывода данных по каждому продукту, а также рассчитайте общую сумму.
Выберите оценку проделанной работы:
Загрузите файл с работой
1. Активность участия
2. Решение проблем:
3. Применения теоретических знаний
4. Качество работы с кейсами