【问题标题】:Python Payroll CaculatorPython工资计算器
【发布时间】:2018-07-30 01:11:57
【问题描述】:

我的任务是创建一个工资计算器,询问用户一周工作的小时数并询问每小时工资率。每周工作时间不超过 40 小时(包括 40 小时)按给定的工资率支付。工作时间超过 40 小时但小于或等于 60 小时的工资是正常小时工资的 1.5 倍。超过 60 小时的工作时间将获得正常小时工资的 2 倍。

我似乎可以弄清楚如何让程序计算工资,包括 60 小时以上的 2 倍费率。它仅以每小时费率的 1.5 倍计算。

谢谢!

base_hours = 40
xtra_hours = 60
over_time = 1.5
xover_time = 2.0

hours = float(input('Enter the amount of hours worked: '))
pay_rate = float(input('Enter the hourly pay rate: ')

if hours > base_hours:
overtime_hours = hours - base_hours
overtime_pay = overtime_hours * pay_rate * over_time
gross_pay = base_hours * pay_rate + overtime_pay

elif hours > 60:
overtime_hours = hours - base_hours 
overtime_pay = overtime_hours * pay_rate * xover_time
gross_pay = base_hours * pay_rate * overtime_pay

else:
gross_pay = hours * pay_rate

print('The gross pay is $', format(gross_pay, ',.2f'), sep='')

【问题讨论】:

  • 您误解了比较逻辑。当它说 up to 40 时,它的意思是 <= 40elif 也是如此,即<= 60

标签: python calculator


【解决方案1】:

你的第一个 if 条件需要更具体:

if hours > base_hours and hours < 60:

否则,只要小时数高于基准小时数,则第一个条件将以 1.5 倍的费率满足 完整代码如下:

base_hours = 40
xtra_hours = 60
over_time = 1.5
xover_time = 2.0

hours = float(input('Enter the amount of hours worked: '))
pay_rate = float(input('Enter the hourly pay rate: '))

if (hours > base_hours) and (hours < 60):
    overtime_hours = hours - base_hours
    overtime_pay = overtime_hours * pay_rate * over_time
    gross_pay = base_hours * pay_rate + overtime_pay

elif hours > 60:
    overtime_hours = hours - base_hours 
    overtime_pay = overtime_hours * pay_rate * xover_time
    gross_pay = base_hours * pay_rate * overtime_pay

else:
    gross_pay = hours * pay_rate

print 'The gross pay is', gross_pay

【讨论】:

  • 谢谢,添加小时
  • 好吧,可能是因为你少了一个括号……你能试试上面的完整代码吗?
  • 尝试了该代码,我的原始代码计算值低于预期值 50 美元,经过修订后,现在计算值超过 300 美元。我会多玩一点,看看我能找到什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多