【发布时间】:2021-12-05 03:48:42
【问题描述】:
我是一个新的 python 用户。我正在编写的代码有问题。我应该 制定每周工资检查计划,计算您将获得多少报酬。我还必须考虑加班时间。
这是给我老师的指示 -
在您工作的前 40 小时,您将获得正常的小时工资。 接下来的 10 小时是加班时间,支付给您 1.5 倍的工资 每小时收费。您剩余的时间(超过 50 小时)将支付给您 每小时费率的两倍。
这是我为它编写的代码:
def weeklypaycheck(hours,rate):
if (hours <= 40):
pay = hours * rate
print("This is your pay: ",pay)
elif hours > 40 or hours < 50:
nm = 40 * rate
othours = hours - 40
otpay = (othours * (rate * 1.5))
print("This is your pay: ", otpay + nm)
elif hours > 50:
nm = 40 * rate
otpay = (10 * (rate * 1.5))
othours = hours - 50
otpay = (othours2 * (rate *2))
print("This is your pay: ", nm+ otpay + otpay)
所以当我在 shell 窗口中运行它时。
我输入:weeklypaycheck(55,10)
ps。 “55”是总工作时间,“10”是我每小时得到多少报酬
这是我的输出:This is your pay: 625.0
我的输出应该是This is your pay: 650.0 而不是This is your pay: 625.0。
如果输入weeklypaycheck(51,20)也一样
我会输出This is your pay 1130.0
我的输出应该是This is your pay: 1140 而不是This is your pay: 1140。
我的数学可能不对,但我很困惑。如果有人愿意帮助我,谢谢!
【问题讨论】:
-
为了清晰起见,您可以稍微重构一下代码。您在每个分支机构都有相同的基本工资计算。最后两个分支具有相同的加班计算(或应该)。还有一个小时 == 50 的错误,它不匹配任何东西。您的条件有 3 个分支,但只有两个边界,因此最后一个语句可能是 else。您在每个分支中都有相同的(如果您重构它)打印语句,因此不是有条件的。
标签: python