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
相关产品推荐
相关产品推荐

