Python简易购物清单脚本作业求助:代码问题咨询
嘿,我来帮你搞定这个简易购物清单的Python脚本!结合你的需求,我整理了完整的可运行代码,还会一步步拆解关键部分,让你清楚每一步的逻辑~
完整实现代码
# 初始化购物历史列表 grocery_history = [] # 循环接收用户输入,直到用户输入结束 while True: item_name = input("请输入商品名称(输入'q'结束输入):") if item_name.lower() == 'q': break # 处理数量和单价的输入,确保是数字类型 try: quantity = int(input(f"请输入{item_name}的数量:")) cost = float(input(f"请输入{item_name}的单价:")) except ValueError: print("数量或单价必须是数字,请重新输入!") continue # 创建商品字典并添加到购物历史列表 grocery_item = { 'item_name': item_name, 'quantity': quantity, 'cost': cost } grocery_history.append(grocery_item) # 初始化总成本变量 total_cost = 0.0 # 输出所有已输入的商品信息 print("\n你的购物清单:") for number, item in enumerate(grocery_history, start=1): # 计算单项商品的总价 item_total = item['quantity'] * item['cost'] # 累加至总成本 total_cost += item_total # 按照要求的格式输出 print(f"{number}→{item['quantity']} {item['item_name']} ¥{item['cost']:.2f} ¥{item_total:.2f}") # 输出所有商品的总成本 print(f"\n所有商品的总成本:¥{total_cost:.2f}")
关键功能拆解
- 输入处理:用
while True实现循环输入,直到用户输入q退出。加了try-except捕获输入异常,避免用户输入非数字导致程序崩溃,体验更友好。 - 存储商品信息:每个商品的名称、数量、单价被封装成字典,再通过
append()添加到grocery_history列表中,完全符合你要求的「字典条目+列表存储」的逻辑。 - 遍历输出:这里用
enumerate(grocery_history, start=1)获取你代码片段里的number(也就是商品的序号),同时拿到对应的商品字典。这样不用手动去写索引取值,简洁又不易出错。输出格式严格按照你要求的「变量→数量 名称 单价 单项总价」,还把金额格式化为两位小数,更贴近实际购物清单的展示效果。 - 总成本计算:遍历的时候同步累加每个商品的单项总价,最后统一输出总花费,逻辑清晰高效。
内容的提问来源于stack exchange,提问作者l.montana
相关产品推荐
相关产品推荐

