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
相关产品推荐
相关产品推荐

