Python中如何根据购物列表汇总库存字典对应商品的总价?
问题解决:从购物清单计算总价
你创建shoplist的方式没有问题,只是缺少从Stock字典中提取对应商品价格并求和的逻辑。下面是两种简单的实现方式:
方法一:遍历购物清单累加价格
在结账的代码块里,初始化总价变量,遍历shoplist中的每个商品,从Stock中取出对应价格累加即可:
Stock = { 'apple': .40, 'cheese': .90, 'banana': .60, 'pear': .60, 'steak': 3.00, 'salad': 1.00, 'ketchup': 1.00, 'wine': 5.00, 'beer': 4.50, } shoplist = [] for key, value in Stock.items(): print(key, value) while len(shoplist) < len(Stock): item = input('Pick an item, or press Enter to checkout: ') if item.strip() == '': # 优化空格判断,兼容多空格输入 from time import sleep print('Calculating total...') sleep(3) print('Here are your items:', shoplist) # 核心:计算总价 total = 0.0 for product in shoplist: total += Stock[product] # 格式化输出,保留两位小数更规范 print(f'The total comes to ${total:.2f}') break elif item in Stock: shoplist.append(item) print('Thank you - Your item has been added.') else: print('Please choose an item that is in stock.')
方法二:用生成器表达式简化求和
如果想让代码更简洁,可以用Python生成器表达式直接求和,一行代码替代循环累加:
total = sum(Stock[product] for product in shoplist)
把这段代码替换方法一中的循环累加部分即可,效果完全一致。
另外优化了输入判断逻辑:item.strip() == ''能识别用户输入的任意数量空格,比原判断逻辑更友好。
内容的提问来源于stack exchange,提问作者veryconfused
相关产品推荐
相关产品推荐

