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

如何编写Python程序实现棒球订单折扣计算及含礼品包装的总价输出

修正后的Python程序实现

先指出你现有代码的几个问题:

  • 折扣计算逻辑错误:你直接用购买数量乘折扣率,但正确逻辑应该是**总金额(数量×单价)**乘折扣率
  • 折扣的打印语句仅在购买51个及以上时执行,其他情况无输出
  • 未处理礼品包装的2美元额外费用
  • 打印购买数量时,整数与字符串直接拼接会触发类型错误
  • 未计算并输出折扣后的最终订单总价

下面是符合需求的正确代码:

# 定义固定常量
BASEBALL_PRICE = 1.99
WRAPPING_FEE = 2.0

# 获取用户输入的购买数量
baseball_count = int(input("请输入购买棒球的数量:"))

# 计算原价总金额
original_total = baseball_count * BASEBALL_PRICE

# 根据数量确定折扣率并计算折扣金额
discount_rate = 0.0
if 10 <= baseball_count <= 50:
    discount_rate = 0.05
elif baseball_count >= 51:
    discount_rate = 0.10

discount_amount = original_total * discount_rate

# 处理礼品包装费用
wrapping_choice = input("是否需要礼品包装?(是/否):").strip().lower()
wrapping_cost = WRAPPING_FEE if wrapping_choice in ["是", "y", "yes"] else 0.0

# 计算最终总价
final_total = original_total - discount_amount + wrapping_cost

# 输出结果
print(f"购买棒球数量:{baseball_count} 个")
print(f"折扣金额:${discount_amount:.2f}")
print(f"折扣后订单总价(含礼品包装):${final_total:.2f}")

代码说明:

  • 用常量定义单价和包装费,后续修改参数更方便
  • 折扣计算基于总金额,完全符合给定的折扣规则
  • 兼容多种礼品包装的输入形式(比如"是"、"y"、"yes"均视为需要包装)
  • 输出保留两位小数,符合美元金额的显示习惯
  • 修复了原代码的类型拼接错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:05:17