为什么函数在Python输出中返回None

2024-06-13 23:30:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道为什么以下两个代码在Python输出中都没有返回值?有人能帮我分别正确地编写这两个代码,告诉我是什么导致它返回None并解释一下吗?我需要以下输出:支付498.75

# 1st Code - Returning None 
def computepay(int1,int2):
    try: 
        h = float(int1)
        r = float(int2)
    except:
        print ("Error, please enter a numeric input")
        quit()
    if h >= 40:
        pay1 = 40 * r + (h - 40) * r * 1.5

        #print(pay1)
    else:
        pay2 = h * r
        #print( pay2)
p = computepay(45,10)
print("Pay",p)
# 2nd Code - Returning None 
def computepay(int1,int2):
    try: 
        h = float(int1)
        r = float(int2)
    except:
        print ("Error, please enter a numeric input")
        quit()
    if h >= 40:
        pay1 = 40 * r + (h - 40) * r * 1.5

        print(pay1)
    else:
        pay2 = h * r
        print( pay2)
print("Pay",computepay(45,10.5))
#print("Pay",p)

Tags: 代码nonedefcodefloatpayreturningprint
2条回答

您需要包含一个return语句,以便python知道返回什么:

def computepay(int1,int2):
    try: 
        h = float(int1)
        r = float(int2)
    except:
        print("Error, please enter a numeric input")
        quit()
    if h >= 40:
        return 40 * r + (h - 40) * r * 1.5
    else:
        return h * r
p = computepay(45,10.5)
print("Pay",p)

您忘记使用返回。 一个函数只返回你想要返回的内容。所以当你调用一个函数来打印它或使用你想要的方式。。。。你要什么就拿什么 所以你的代码必须是

def computepay(int1,int2):
    try: 
        h = float(int1)
        r = float(int2)
    except:
        print ("Error, please enter a numeric input")
        quit()
    if h >= 40:
        pay1 = 40 * r + (h - 40) * r * 1.5      # u can use return directly here
        return pay1

        print(pay1)                             # print helps only for your test
    else:
        pay2 = h * r                            # same here u can use directly return h*r
        print( pay2)
        return pay2

print("Pay",computepay(45,10.5))

相关问题 更多 >