为什么此Python 3.x函数不起作用

时间:2018-09-30 18:05:44

标签: python python-3.x function

几天前我们刚刚在课堂上学习了函数,但我不确定为什么该函数不会运行。它基本上与我在课堂上所做的功能相同。

def pay(hrs, rate, finalPay):
    hrs = int(input("Hours worked"))
    rate = float(input("Pay grade"))
    finalPay = (hrs * rate)
    if hrs > 40:
        finalPay = (((finalPay - 40) * 1.5) + finalPay)
        return finalPay

print(pay)

尝试运行它后,我在终端的0x109b5a6a8处获得功能付款。如果我尝试在打印功能中列出参数,则会出现回溯错误,指出未定义所述参数。我不确定这是怎么回事。

4 个答案:

答案 0 :(得分:2)

您正在打印对pay函数的引用。如果要调用该函数,则需要带括号(()):

print(pay())

请注意,hrsrate是在函数内部输入的,finalPay是在函数内部计算的,因此应从函数定义中删除这三个变量。

答案 1 :(得分:1)

在创建该函数时不要使用变量。

def pay():

您正在函数中定义它们:

def pay():
    hrs = int(input("Hours worked"))
    rate = float(input("Pay grade"))
    finalPay = (hrs * rate)
    if hrs > 40:
        finalPay = (((finalPay - 40) * 1.5) + finalPay)
        return finalPay

并使用如下功能:

print(pay())

答案 2 :(得分:1)

当前,您要尝试的是打印功能的地址。

如果要打印函数的输出,finalPay需要调用该函数。

要调用函数,您必须在()的名称后放置print(pay(1,2,3)),其中包含传递给该函数的参数。

因此,在这种情况下,请使用print(pay)而不是hrs,其中1、2和3将是您的ratefinalPay((equal 'mrg (car A)) (let ((A A)) (funcall (car A) (my_eval (cadr A)) (my_eval (caddr A))))) 变量'值。

我认为您对编程语言中的功能不太了解。我建议您this进行概述。

答案 3 :(得分:0)

要调用函数,您需要在要调用的位置添加括号。

在您的示例中,您需要这样写最后一行:

print(pay(1, 2, 3))