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

Python加班工资计算结果异常,求代码错误排查(新手求助)

薪资计算代码错误排查

问题背景

计算45小时薪资:时薪10.50元,其中5小时为加班,加班工资按1.5倍计算,正确结果应为498.75元,但现有程序输出结果不符。

错误代码

hours = float(input("Enter hours: "))
rate = float(input("Enter rate: "))
extraPay = float((hours-40) * (rate*1.5))

def computepay(a, b, c):
    paymentCalc= a * b + c
    return paymentCalc
x = computepay(hours, rate, extraPay)
print(x)

错误原因

代码逻辑重复计算了加班时长的正常薪资:

  • a * b 是总工时(45小时)按正常时薪计算,已包含加班5小时的基础工资
  • 额外加上extraPay(5小时的1.5倍薪资),相当于加班部分拿到了基础工资+1.5倍加班工资,而非规则要求的1.5倍薪资(即基础工资+0.5倍补贴)

代入数值验证:
45×10.5 + 5×(10.5×1.5) = 472.5 + 78.75 = 551.25,与正确结果498.75不符。

修正代码

将逻辑调整为「40小时正常薪资 + 加班时长×1.5倍时薪」,同时优化函数结构:

hours = float(input("Enter hours: "))
rate = float(input("Enter rate: "))

def computepay(hours, rate):
    if hours <= 40:
        return hours * rate
    regular_pay = 40 * rate
    overtime_pay = (hours - 40) * rate * 1.5
    return regular_pay + overtime_pay

print(computepay(hours, rate))

运行该代码输入45和10.50,将输出正确结果498.75。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:40:51