You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:41:20