不断收到此 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)
答案 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