mirror of
https://github.com/denis-on/basicsPython.git
synced 2026-02-03 08:00:51 +03:00
72 lines
3.3 KiB
Python
72 lines
3.3 KiB
Python
# Реализовать структуру данных «Товары». Она должна представлять собой список кортежей.
|
||
# Каждый кортеж хранит информацию об отдельном товаре.
|
||
# В кортеже должно быть два элемента — номер товара и словарь с параметрами,
|
||
# то есть характеристиками товара: название, цена, количество, единица измерения.
|
||
# Структуру нужно сформировать программно, запросив все данные у пользователя.
|
||
|
||
def my_str2int(str): # верним число если это возможно
|
||
try:
|
||
n_int=int(str)
|
||
except ValueError:
|
||
return str
|
||
else:
|
||
return n_int
|
||
|
||
def my_print_list(struct):
|
||
print('[')
|
||
for el in struct:
|
||
print(el)
|
||
print(']')
|
||
def my_print_dict(dict):
|
||
print('{')
|
||
for key in dict.keys():
|
||
print(f"'{key}': {dict[key]},")
|
||
print('}')
|
||
|
||
temp_struct = [
|
||
(1, {'название': 'компьютер', 'цена': 20000, 'количество': 5, 'eд': 'шт.'}),
|
||
(2, {'название': 'принтер', 'цена': 6000, 'количество': 2, 'eд': 'шт.'}),
|
||
(3, {'название': 'сканер', 'цена': 2000, 'количество': 7, 'eд': 'шт.'})
|
||
]
|
||
|
||
my_struct = []
|
||
my_dict={}
|
||
|
||
if False : # Постывить True для отладки на temp_struct
|
||
my_struct = temp_struct.copy()
|
||
my_dict = {'название': [], 'цена': [], 'количество': [], 'eд': []}
|
||
else: # запросим у пользователя список полей (ключей) словаря
|
||
i=1
|
||
next = True
|
||
str = input('Введите характеристиками товара через запятую:(def: название,цена,количество,единица измерения): \n')\
|
||
or 'название,цена,количество,единица измерения'
|
||
name_list = str.split(',')
|
||
|
||
while next:
|
||
str_dict = {}
|
||
for itm in name_list:
|
||
str_dict.update({itm : my_str2int(input(f'{itm}: '))})
|
||
my_dict.update({itm : []})
|
||
|
||
my_struct.append( (i,str_dict,) )
|
||
next = False if input('Внести еще одну запись, (Y,n)' ).lower() == "n" else True
|
||
i += 1
|
||
|
||
# Нужно собрать аналитику о товарах. Реализовать словарь, в котором каждый ключ — характеристика товара,
|
||
# например, название. Тогда значение — список значений-характеристик, например, список названий товаров.
|
||
|
||
print('\nЗаполненая структура:')
|
||
#print(my_struct)
|
||
my_print_list(my_struct)
|
||
|
||
for el_struct in my_struct:
|
||
for key in el_struct[1].keys():
|
||
if el_struct[1].get(key) not in my_dict[key]: # проверим повторяющиеся или можно было еще организовать через set
|
||
my_dict[key].append(el_struct[1].get(key)) # но тут все равно перебор
|
||
|
||
print('\nАналитика:')
|
||
#print(my_dict)
|
||
my_print_dict(my_dict)
|
||
|
||
|