Бюджет:
2000 руб
Выполнить лабораторную работу на языке программирования Python 3.
В работе необходимо применить форматированный вывод, методы к строкам, регулярные выражения, записать функцию.
Задача:
Получен массив строк source_data следующей структуры: id, Название, Цена оптовая, Цена розничная, Полное название, Модель, Код.
Разделителем полей является знак табуляции.
1. Напишите код функции get_price, которая будет выводить название и розничную цену картриджей заданного цвета color. Данные отсортируйте по возрастанию цены.
При запуске программы будет вызвана основная функция main. Все остальные функции будут вызываться из нее. Цвет картриджа вводится с клавиатуры.
2. Создайте функцию, которая рассчитывает среднюю цену картриджа заданного цвета. Выведите содержимое словаря на экран в порядке возрастания средней цены.
Приведен фрагмент программного кода. Требуется завершить программу, следуя заданиям и указаниям в комментариях.
# -*- coding: utf-8 -*-
source_data = ['1067 HP 03A C3903A чер. для LJ5p/5mp/6p/6mp 3 828,07 3 403,75 Картридж Hewlett-Packard для LJ 5P/5mp/6p/6mp C3903A 2054',
'11429 HP 92A C4092A желт.для LJ1100/1100A/3200 2 534,07 2 253,18 Картридж Hewlett-Packard для LJ 1100 C4092A 2069',
'12151 HP 96A C4096A чер.для LJ 2100/2200 4 369,27 3 884,96 Картридж Hewlett-Packard для LJ 2100 C4096A 2070',
'12355 HP 29X C4129X чер. пов. емк. для LJ5000 6 902,21 6 137,14 Картридж Hewlett-Packard для LJ 5000 C4129X 2073',
'12356 HP 82X C4182X голуб. пов. емк. для LJ 8100 8 090,74 7 193,93 Картридж Hewlett-Packard для LJ 8100/HP Mopier 320 C4182X 2083',
'24874 Canon EP-22 чер.для LBP-1120/800/810 2 124,07 2 124,07 Картридж CANON EP-22 (HP C4092A) EP-22 2426',
'29694 HP 15A C7115A чер.для LJ 1000/1200/1220 2 636,89 2 344,60 Картридж Hewlett-Packard LJ 1200 C7115A 2211',
'31416 Toshiba T-1550E чер. 4 лепесткадля 1550/1560 613,56 545,55 Тонер Toshiba 1550/1560 4'EU vers.(туб. 240г.) (о) T-1550E 4'EURO T-1550E 4 EURO 3851',
'43701 HP 43X C8543X чер. пов. емк. для LJ9000 11 104,70 9 873,80 Картридж Hewlett-Packard LJ 9000 C8543X 2225',
'45275 Xerox 109R00639 чер.для Ph3110/3210 5 556,05 4 940,19 Тонер-картридж XEROX PHASER 3110/3210 (o) 109R00639 0624']
def get_price(color):
# напишите здесь ваш код функции, которая выводит названия и цены
def main():
initial_color=input()
get_price(initial_color)
if __name__ == "__main__":
main()
Порядок выполнения работы
1. Проанализировать исходный код примера, определить точки вызова функций, формальные и фактические параметры.
2. Проанализировать исходные данные. Изучить их структуру и определить, как получить доступ к искомым данным.
В приведенной задаче необходимо получить название, цвет и розничную цену. Эти данные содержатся в каждом элементе списка строке, состоящей из полей, разделенных знаком табуляции. Для решения задачи необходимо перебирать в цикле элементы исходного массива-списка и с каждым элементом производить следующие действия: получить значения полей из строки, используя метод split, необходимая информация находится в полях с индексами 1 (название и цвет) и 3 (цена), необходимо извлечь цвет из поля и сохранить эту информацию в новый массив для дальнейшего использования.
3. Создать функцию, которая будет рассчитывать среднюю цену картриджа заданного цвета. В качестве формальных параметров логично использовать сформированный ранее массив и название цвета, введенного с клавиатуры. В функции осуществляется перебор элементов массива в цикле, поиск и подсчет количества картриджей заданного цвета, а также вычисление суммы цен. После завершения цикла вычисляется среднее арифметическое для цен, путем деления общей суммы цен на количество картриджей заданного цвета.
Предварительно требуется преобразовать данные о ценах в тип с плавающей запятой, удалив или заменив лишние символы из строки с помощью метода replace.
4. Приведите псевдокод программы.
5. Приведите блок-схему программы.