Python编写多商品税后总价计算器运行结果异常求助
Python商品税后总价计算器修复
原代码存在的问题
- 循环内部重复初始化
before_tax列表、after_tax变量,之前输入的商品价格会被全部清空,仅保留最后一次输入的数值 - 税后计算逻辑仅取列表第一个元素
before_tax[0]参与运算,无法适配多商品总价计算需求 - else分支的累加逻辑无实际作用,下次循环启动时会直接清空累加结果,无法累计多商品总价
修复后可运行代码
# 初始化逻辑放在循环外部,避免数据被意外清空 before_tax = [] # 可按需调整折扣率、税率数值 discount_rate = 0.1 tax_rate = 0.0845 while True: # 改用float支持带小数的商品价格输入 item_price = float(input("请输入商品价格:")) before_tax.append(item_price) more = input("是否还有其他商品?(y/n):") if more.lower() == "n": # 先计算所有商品税前总价 total_before = sum(before_tax) # 统一应用折扣、税率计算税后总价 after_tax = total_before * (1 - discount_rate) + total_before * tax_rate print(f"税后总价为:{after_tax}") break
测试效果
输入两个价格为10的商品时,计算逻辑为:
税前总价=10+10=20
折后总价=20*(1-0.1)=18
加税后总价=18 + 20*0.0845=19.69
输出结果与预期一致。
内容的提问来源于stack exchange,提问作者Marcuzie
相关产品推荐
相关产品推荐

