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

Python餐费加15%小费平摊代码计算错误排查

问题背景
  • 训练任务要求:两位朋友餐厅聚餐账单金额为47.28美元,需在账单基础上追加15%的服务小费后平摊全部费用,需分别计算小费金额、应付总金额、每人应付份额,最终输出固定前缀Each person needs to pay: 拼接每人应付金额的结果。
  • 提交后提示计算错误的初始代码如下:
bill = 47.28
tip = 15 // bill * 100
total = bill + tip
share = total // 2
print("Each person needs to pay:" + str(share))
代码存在的具体错误
  • 小费计算公式完全错误:15%比例的小费计算逻辑应为「账单金额 * 0.15」,原代码用整数除法//写的15 // bill * 100按照Python从左到右的运算优先级,会先计算15整除47.28得到结果0,再乘以100最终得到tip=0,完全不符合小费比例要求。
  • 平摊金额时错误使用整数除法:总金额包含小数,使用//做整数除法会直接截断小数部分取整,导致金额计算结果失真,平摊计算应该使用普通除法/保留小数结果。
  • 输出格式不符合要求:要求的输出前缀冒号后带有一个空格,原代码中"Each person needs to pay:"冒号后没有空格,和任务要求的输出格式不匹配。
修正方案

首先明确正确计算步骤:

  1. 小费金额:47.28 * 0.15 = 7.092美元
  2. 应付总金额:47.28 + 7.092 = 54.372美元
  3. 每人应付份额:54.372 / 2 = 27.186美元

修正后可正常运行的代码:

bill = 47.28
tip = bill * 0.15
total = bill + tip
share = total / 2
print("Each person needs to pay: " + str(share))

如果需要按照日常货币计数规则保留两位小数,可以将输出语句调整为格式化输出:

print(f"Each person needs to pay: {share:.2f}")

调整后输出结果为Each person needs to pay: 27.19。

内容的提问来源于stack exchange,提问作者Jaya Asiri Prem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 10:01:00