2015-12-21 67 views
0

我是新来的Python,我试图解决这个问题,但不断输出'None'。该问题提出了一个计划,其中输入的是小时数和费率,产出是总工资,包括超过40小时的加班费。无论如何,这是代码(我使用Python 3.5.1):我的函数返回“无”

def compute_pay (h,r): 
    if h <= 40: 
     pay = h*r 
     return 


    elif h>40: 
     pay = (((h-40)*1.5)*r+(40*r)) 
     return 

hours = input ("Enter hours:") 
rate= input ("Enter rate") 
x = float (hours) 
y = float (rate) 
p = compute_pay (x,y) 
print (p) 

回答

3

return返回None,如果你不给它任何东西。尝试return pay

1

我的函数返回“无”

您的功能不返回任何。你想回pay

def compute_pay(h, r): 
    if h <= 40: 
     pay = h*r 
    elif h > 40: 
     pay = (((h-40)*1.5)*r+(40*r)) 

    return pay 

我想你可以用缩短你的代码ternary if/else

def compute_pay(h, r): 
    return h * r if h <= 40 else (((h - 40) * 1.5) * r + (40 * r)) 
1

你必须指定什么在return语句返回:

​​3210

请注意x*2之后的return声明。