Python错误计算

我在这里遇到了我的代码问题。 我收到的错误在底部。 我必须输入工资,并在加班或不加班的情况下计算工资。

在此输入代码#######################功能####################### #def Input():try:name = raw_input(“输入你的名字和姓氏:”)titlename = name.title()除外:return Input

def hours():尝试:wHours = raw_input(“输入本周工作的小时数:”),除非:wHours <1或wHours> 60:打印“员工”不能工作少于1小时或超过60小时“。 返回lstEmp

def pay():try:pRate = raw_input(“输入你的小时工资:”),除非:如果pRate <6或pRate> 20:打印“雇员的工资不能低于6.00美元或高于20美元”。 退还工资

def calcHours(pr,h):如果h <= 40:pr * h else:(h -40)*(pr * 1.5)+ pr * 40 return lstEmp

def end():empDone = raw_input(“请在完成员工信息时输入DONE:”)empDone.upper()==“DONE”

#################### MAINLINE CODE

lstEmp = [] Names =“”

而True:Names = Input()

WorkHours=Hours()
Wages=Pay()
gPay=calcHours(WorkHours, Wages)

Done=end()
if end():
    break

Traceback(最近一次调用的最后一个):在gPay = calcHours(WorkHours,Wages)中的文件“J: 11-2-10.py”,第53行,文件“J: 11-2-10.py”,第29行,在calcHours pr * h TypeError:不支持的操作数类型为*:'NoneType'和'NoneType'


在“输入”,“小时数”和“付款”中,分配给与功能同名的变量; 也许你的意思是返回这些值呢?


gPay=calcHours(Hours, Pay)

你的意思是工作WorkHours ,这就是你所说的变量; Hours仍然是函数,它返回它。 代码中有很多其他位置,您已更改变量名称,因此它们不再匹配。

还有+1 gnibbler的评论。 这实际上不是什么tryexcept没有特殊的例外, 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
链接地址: http://www.djcxy.com/p/56445.html

上一篇: Python error calculating

下一篇: ssl.SSLZeroReturnError: TLS/SSL connection has been closed (EOF) (