2015-12-21 6 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

Моя функция возвращает значение «None»

вы действуете ничего не вернется. Вы имели в виду, чтобы вернуться 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 заявление:

def double_it(x): 
    return x*2 

Обратите внимание, что x*2 после заявления return.

Смежные вопросы