def shop_from_grocery_list(budget, grocery_list, *products_and_prices): bought_products = [] for product, price in products_and_prices: if product not in grocery_list: continue if budget - float(price) < 0: break else: bought_products.append(product) grocery_list.remove(product) budget -= float(price) if not grocery_list: return f"Shopping is successful. Remaining budget: {budget:.2f}." else: return f"You did not buy all the products. Missing products: {', '.join(grocery_list)}."