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

Python While循环无法累加总计值:我遗漏了什么?

修复循环累加总计值的问题

你的代码核心问题是:subtotal、tax、total仅在程序启动时计算了第一次输入的商品金额,后续循环中新增的商品金额没有被累加到这些变量里,导致总计值始终停留在第一次的计算结果。

以下是修复后的代码:

# 初始化小计为0,税率单独定义便于修改
subtotal = 0.0
tax_rate = 0.0825

while True:
    priceItems = float(input("Enter item price: "))
    if priceItems == 0:
        # 输入0时计算最终税费和总计并输出
        tax = subtotal * tax_rate
        total = subtotal + tax
        print(f"\nSubtotal: ${subtotal:.2f}")
        print(f"Tax: ${tax:.2f}")
        print(f"Total: ${total:.2f}")
        break
    # 输入非0价格时,获取数量并累加到小计
    numItems = int(input("How many of item: "))
    subtotal += priceItems * numItems

关键修改点:

  • 将subtotal初始化为0,确保可以从0开始累加所有商品的金额
  • 改用while True循环结构,逻辑更直观:一直询问商品价格,直到输入0才终止并输出结果
  • 每次输入有效商品(价格非0)时,计算当前商品的总金额并累加到subtotal
  • 仅在输入0时才计算最终的税费和总计,避免不必要的重复计算
  • 使用f-string格式化输出,比字符串拼接更简洁,还能直接控制小数位数

内容的提问来源于stack exchange,提问作者GraphiteBlimp

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:12:06