使用多个函数和返回函数的Python工资程序
好的,我需要帮助来完成这个程序。这里是作业要求:
写一个工资计算程序,对于超过40小时的工作时间,支付1.5倍的工资。这个程序除了主函数外,还需要有3个其他的函数。
- 第一个函数要询问用户总共工作了多少小时,以及工资的标准,并把这些信息返回给主函数。需要对这些值进行验证。工作小时数必须至少是8小时,最多不能超过86小时。工资标准不能低于7.00美元,也不能高于50.00美元。
- 第二个函数计算正常工作小时和加班小时,并把这些信息返回给主函数。因为有的人可能工作时间少于40小时,所以要考虑这种情况。
- 第三个函数计算正常工资(正常工作小时乘以工资标准)、加班工资(加班小时乘以加班工资标准)以及总工资,并把这些信息返回给主函数。
- 主函数会把这些信息显示在屏幕上,格式要像下面的示例一样。(值需要传递和返回)。
输出应该看起来像下面这样:
Payroll Information
Pay rate $10.00
Regular Hours 40
Overtime Hours 20
Regular pay $400.00
Overtime pay $300.00
Total Pay $700.00
这是我目前的进展:
def work_info():
hw = input('Enter the amount of hours worked between 8 and 56')
while hw < 8 or hw > 86:
print('Enter the amount of hours in range')
pr = input('Enter the your current payrate between $7 and $50')
while pr < 7 or pr > 50:
print('Enter a payrate in range')
def reg_ovt_hours():
if hw < 40:
reg_hours = hw and ovt_hours = 0
else reg_hours > 40
ovt_hours = hw - 40
return hw
def reg_pay():
reg_pay = reg_hours * pr
ovt_pay = ovt_hours * reg_pay * 1.5
tot_pay = reg_pay + ovt_pay
return pr, reg_hours, ovt_hours
def main():
print('Payroll Information')
print ('Pay rate') pr
print reg_hours
print ovt_hours
print reg_pay
print ovt_pay
print tot_pay
main()
请告诉我如何才能让这个程序正常工作。
2 个回答
0
这一行是错的:
else reg_hours > 40
应该是:
elif reg_hours > 40:
或者:
else:
你缺少了一个冒号,而且在else
后面不能有条件,因为else
是用来处理所有其他情况的,简单来说就是“否则”。
如果reg_hours == 40
,应该发生什么呢?
0
你需要注意变量的作用范围,也就是变量在哪些地方可以被使用。我建议你去看看关于Python中变量作用范围的教程。
我还推荐你查看这个问题:Python作用范围规则的简短描述?
举个例子,在work_info
里你定义了hw
和pr
,但目前它们只在这个地方被定义。所以当你之后想用这些变量时,会出现错误,因为Python解释器不知道它们是什么。
另外,你需要把else reg_hours > 40
改成else:
或者elif reg_hours > 40:
。