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

如何在不修改1.5倍加班费率的前提下修正Python薪资计算器?

修正加班薪资计算的Python程序

你的问题核心是加班时重复计算了超出40小时部分的正常薪资——当前代码把总工时都按正常时薪算,又额外加了1.5倍的加班工资,等于超出的那部分工时拿了2.5倍时薪,这不符合规则。要保留1.5倍加班费率的话,只需要把正常薪资的计算范围限定在40小时内,具体修正如下:

修正后的代码

hrs = input("Enter Hours: ")
h = float(hrs)
rate = input("Enter Rate: ")
r = float(rate)

if h > 40:
    # 正常薪资:仅前40小时按原时薪计算
    reg = 40 * r
    # 加班薪资:超出40小时的部分按1.5倍时薪计算
    otp = (h - 40) * (r * 1.5)
    final_pay = reg + otp
    print("Pay:", final_pay)
else:
    reg_pay = h * r
    print("Pay:", reg_pay)

逻辑拆解(以45小时、时薪10美元为例)

  1. 正常工时薪资:40 * 10 = 400美元(仅计算前40小时的薪资)
  2. 加班工时:45 - 40 = 5小时
  3. 加班薪资:5 * (10 * 1.5) = 75美元
  4. 总薪资:400 + 75 = 475美元(符合规则的正确结果)

通用思路(适配后续复杂版本)

不管以后规则怎么变(比如正常工时阈值调整、加班倍数变化、甚至多段加班费率),核心逻辑都是:

  • 拆分工时:把总工时分成「正常阈值内的时长」和「超出阈值的时长」
  • 分别计算:不同区间的工时对应不同的费率,不要重复计算同一区间的薪资
  • 求和得到总薪资

比如以后如果有“前40小时正常,40-60小时1.5倍,60小时以上2倍”的规则,也可以用同样的思路拆分三段计算,再相加即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 02:10:16