Вывод функции исходя из значений, заданных пользователем

Подскажите, как правильно работать с функцией? Нужно осуществить вывод функции исходя из значений, заданных пользователем.

shop = {
    "мучное": {
        "хлеб": 200
    },
    "молочное":{
        "молоко":50
    },
    "мясное": {
        "говядина":500
    }
}
name = input("Ваше имя:""\n""-> ")
while True:   
    if name.lower() == "admin":
        choice = input("Введите 1, чтобы добавить товар в магазин \nВведите 2, чтобы удалить товар из магазина \nВведите 3, чтобы изменить цену на товар \nВведите 4, чтобы поставить % наценку на все товары\nВведите 5, чтобы добавить раздел в магазин\nВведите 6, чтобы вывести все товары из магазина\nВведите 7, чтобы вывести все товары из нужного раздела\n-> ")
        if choice == "1":
            user_group = input("В какой раздел добавить товар?:\n-> ")
            product = input("Какой товар добавить?:\n-> ")
            price_news = int(input("Цена на товар?:\n-> "))
            def add_products(user_group, shop=shop, **products):
                if user_group in shop:
                    shop[user_group].update(products)

                elif user_group not in shop:
                    shop.update({user_group:{}})
                    shop[user_group].update(products)

            add_products(user_group , product=price_news)
            
            def print_all_products(shop=shop):
                for group, array in shop.items():
                    print ("Раздел: " + group)
                    for product, price in array.items():
                        print(product + " - " + str(price))
            print_all_products()

    
    else:
        print("Привет", name)
        choice = input("Введите 1, чтобы вывести все товары из магазина\nВведите 2, чтобы вывести все товары из нужного раздела")

Подскажите, как тут прописать ('молочное', молоко=100)?

add_products(user_group , product=price_news)

Выдает product вместо товара "молоко"


Ответы (1 шт):

Автор решения: splash58

так немножко проще код получится

def add_products(user_group, shop=shop, **products):
    group = shop.setdefault(user_group, {})
    group.update(products)


product = 'колбаса'
new_price = 150
add_products('гастрономия', **{product: new_price})
add_products('молочное', сметана=70)
add_products('молочное', сметана=90)
print(shop) # {'мучное': {'хлеб': 200}, 'молочное': {'молоко': 50, 'сметана': 90}, 'мясное': {'говядина': 500}, 'гастрономия': {'колбаса': 150}}
→ Ссылка