Python错误计算

时间:2010-11-04 04:04:24

标签: python

我的代码出现问题。我收到的错误在底部。 我必须输入工资单并计算加班费或没有加班费。

在这里输入代码     ####################### 功能 ######################## 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 CODE

lstEmp = [] 名称= “”

虽然是真的:     名称=输入()

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'

的不支持的操作数类型
  
    
      

    
  

2 个答案:

答案 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