2015-12-21 75 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聲明。