几天前我们刚刚在课堂上学习了函数,但我不确定为什么该函数不会运行。它基本上与我在课堂上所做的功能相同。
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处获得功能付款。如果我尝试在打印功能中列出参数,则会出现回溯错误,指出未定义所述参数。我不确定这是怎么回事。
答案 0 :(得分:2)
您正在打印对pay
函数的引用。如果要调用该函数,则需要带括号(()
):
print(pay())
请注意,hrs
和rate
是在函数内部输入的,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将是您的rate
,finalPay
和((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))