我该如何修正这个每小时费率计算器?

时间:2021-04-03 11:42:18

标签: python

不断收到此 python 代码的错误输入错误。有人可以引导我了解我做错了什么吗?谢谢。任务是代码计算出所有工作时间超过 40 小时的小时费率的半小时。使用 45 小时和每小时 10.50 的费率来测试程序,那么工资应该是 498.75。我一直收到 708.75...

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

total = 0.0

if h <= 40.00:
    total = h * r  

elif h > 40.00: 
    total = h * double_r

print(total)

3 个答案:

答案 0 :(得分:1)

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

double_rate = rate * 1.5

total = 0.0

if hrs <= 40.00:
    total = hrs * rate  

elif hrs > 40.00: 
    total = ((hrs - 40 ) * double_rate) + (40 * rate)

print(total)

答案 1 :(得分:1)

这是错误的输入错误还是逻辑错误? 我没有第一部分的解决方案,但我肯定有第二部分的解决方案。

根据您的代码,如果小时数 <=40 ,则您将小时数乘以费率。 但如果它大于 40,则将小时乘以速率 1.5 。 这里的逻辑是错误的。 您只需要为大于 40 的小时数添加额外的 1.5 小时。

为此,您必须修改您的总报表。 像这样的事情: 总计 = ((h - 40 ) * double_r) + (40 * r)

所以在 45 小时内以 10.5 的速率, 它将是 40 * 10.5 = 420 和 510.51.5 = 78.75 从而导致 498.75

如果有帮助,请点赞。 :)

答案 2 :(得分:1)

您的问题不是编码问题而是数学问题:您每小时乘以 double_r 比率 (45 * 10.5 * 1.5 = 708.75)。如果您只想将 40 小时以上的小时数与更高的费率相乘,那么您必须将它们额外相乘(40 * r 表示正常费率,而 (h-40) * double_r 表示其余时间的费率更高。您的代码应该看起来像这样:

if h <= 40.00:
    total =  h * r  

elif h > 40.00: 
    total = 40 * r + (h - 40) * double_r
相关问题