Python 我想知道为什么我的程序在40到50个小时内输出错误?

Python 我想知道为什么我的程序在40到50个小时内输出错误?,python,Python,我正在做一个项目,要求加班时间为1.5,50岁以后的任何事情都是双倍时间。当我做55x15.50我得到1240和45x20.75我将得到985.62这是正确的金额,但税收和净额是错误的 GrossPay = Hourly * RateofPay Taxes = GrossPay * 0.4 NetPay = GrossPay - Taxes if Hourly <= 40: (Hourly * RateofPay) else: GrossPay

我正在做一个项目,要求加班时间为1.5,50岁以后的任何事情都是双倍时间。当我做55x15.50我得到1240和45x20.75我将得到985.62这是正确的金额,但税收和净额是错误的


GrossPay = Hourly * RateofPay
Taxes = GrossPay * 0.4
NetPay = GrossPay - Taxes

if Hourly <= 40:
       (Hourly * RateofPay)

   else:
         GrossPay = 40 * RateofPay + (Hourly-40)*RateofPay*1.5 

 if Hourly > 50:
            GrossPay = 50 * RateofPay + (Hourly-50)*RateofPay*2

print("The gross pay is: $", format(GrossPay, '.2f'))
print("The taxes are: $", format(Taxes, '.2f'))
print("The net pay is: $", format(GrossPay-Taxes, '.2f'))


GrossPay=每小时*付款率
税收=总收入*0.4
净支付=总收入-税收
如果每小时50:
GrossPay=50*支付费率+(每小时50)*支付费率*2
打印(“工资总额为:$”,格式为(GrossPay,.2f'))
打印(“税费为:$”,格式为(税费,.2f'))
打印(“净工资为:$”,格式(GrossPay Taxes,.2f'))

您可以在一行代码中执行此操作,而无需if-else语句:

gross_pay = (max(hours-50,0)*2 + max(min(10,hours-40),0)*1.5 + min(hours, 40)) * hourly_wage
taxes = gross_pay * 0.4
net_pay = gross_pay - taxes

“但是税收和净收入是错误的。”什么是预期产出,什么是实际产出?请显示一个。我已编辑以尝试修复代码格式,但不清楚其意图是什么。请修改格式以匹配您的实际代码。您正在计算
税费
网付
,然后再进行
GrossPay
计算。在
if
循环后计算它们以获得准确的结果。变量和函数名称应遵循
小写字母加下划线的
样式。如果我这样做,加班或双倍时间将不会被加入。是的,它会在50小时内翻倍,在40和50之间的所有小时的1.5倍,以及作为单小时的所有其他小时。因此,在55小时内,它将是
5*2+10*1.5+40
,而对于例如47小时,它将是
0*2+7*1.5+40
。我相信这就是你想要的,这就是我想要的。非常感谢。我能用这个得到它。我感谢你的帮助。