我的代码出现问题。我收到的错误在底部。 我必须输入工资单并计算加班费或没有加班费。
在这里输入代码 ####################### 功能 ######################## def输入(): 尝试: name = raw_input(“输入您的名字和姓氏:”) TITLENAME = name.title() 除了: 返回输入
def Hours(): 尝试: wHours = raw_input(“输入你本周工作的小时数:”) 除了: 如果wHours< 1或wHours> 60: 打印“员工不能工作不到1小时或超过60小时。” return lstEmp
def Pay(): 尝试: pRate = raw_input(“输入您的小时工资:”) 除了: 如果pRate< 6或pRate> 20: 打印“员工的工资不能低于6.00美元或高于20.00美元。” 退货
def calcHours(pr,h): 如果h <= 40: pr * h 其他: (h -40)*(pr * 1.5)+ pr * 40 return lstEmp
def end(): empDone = raw_input(“请在完成员工信息后输入DONE:”) empDone.upper()==“DONE”
#################### MAINLINE CODElstEmp = [] 名称= “”
虽然是真的: 名称=输入()
WorkHours=Hours()
Wages=Pay()
gPay=calcHours(WorkHours, Wages)
Done=end()
if end():
break
追踪(最近一次通话): 文件“J:\ 11-2-10.py”,第53行,in gPay = calcHours(工作时间,工资) 在calcHours中输入第29行的“J:\ 11-2-10.py” pr * h TypeError:*:'NoneType'和'NoneType'
的不支持的操作数类型答案 0 :(得分:0)
在输入,小时和工资中,您可以指定与函数同名的变量;也许你的意思是返回这些值?
答案 1 :(得分:0)
gPay=calcHours(Hours, Pay)
你的意思是WorkHours
,这就是你所谓的变量; Hours
仍然是返回它的函数。代码中有很多其他地方你已经改变了变量名,所以它们不再匹配。
还有+1 gnibbler的评论。这真的不是try
的作用,如果没有特定的异常,你永远不应该使用except
。您可能想要放在try
中的位是转换为整数:
def getHours():
while True:
hours= raw_input("Enter the hours you worked this week: ")
try:
hours= int(hours)
except ValueError:
print "That's not a number, type it proper."
continue
if not 1<=hours<=60:
print "Employees must work between 1 and 60 hours."
continue
return hours