Python 无法找出此编码的错误

Python 无法找出此编码的错误,python,Python,我试图找出为什么我没有得到python中这种编码的正确答案。以下是我目前的代码: def main(): base = input('Enter an integer for the base: ') exponent = input('Enter an integer for the exponent: ') print(base,'to the power', exponent,'equals', power) def power(base, exponent):

我试图找出为什么我没有得到python中这种编码的正确答案。以下是我目前的代码:

def main():
    base = input('Enter an integer for the base: ')
    exponent = input('Enter an integer for the exponent: ')
    print(base,'to the power', exponent,'equals', power)

def power(base, exponent):
    if exponent <= 1:
       return base
    else:
       return base * power(base, exponent - 1)
main()
当我以2和5为基数运行程序时,我得到:

Enter an integer for the base: 2
Enter an integer for the exponent: 5
2 to the power 5 equals <function power at 0x03DDC300>
>>> 

我的问题是:为什么我得到的是0x03DDC300或类似答案的函数幂,而不是32的正确答案?

您需要使用正确的整数参数调用函数幂才能获得正确的输出

print(base,'to the power', exponent,'equals', power(int(base), int(exponent))) # call the function `power`
如果没有这一点,电源只会返回一个可调用的

In [1]: def some_func():
   ...:     return 2 
   ...: 

In [2]: print some_func # print the function without calling 
<function some_func at 0x601a050> # returns a callable

In [3]: print some_func() # call the function
2
看这条线。您不是在调用函数,而是在编写函数名


您需要调用该函数

将power更改为powerbase,指数

例如,如果要将2计算为幂3,请将上面的行更改为:

print(base,'to the power', exponent,'equals', power(2,3)) 
因为电源是一个函数,所以您需要调用它,而不仅仅是打印它。 您的函数能力需要两个参数,因此您可以尝试以下代码:

def main():
    base = int(input('Enter an integer for the base: '))
    exponent = int(input('Enter an integer for the exponent: '))
    # use `int()` function if you wish user enter a intege


    print(base,'to the power', exponent,'equals', power(base, exponent))

def power(base, exponent):
    if exponent <= 1:
       return base
    else:
       return base * power(base, exponent - 1)

main()

如果函数没有括号,则返回值将告诉您有关函数的信息,而不是返回值。为了获得返回值,必须分别插入函数幂的参数base和exponent

另外,当一个函数使用另一个函数时(比如函数1使用函数2),您应该首先定义函数2,而不是相反

这应该起作用:

def powerbase,指数:
如果是power,则调用函数:power。使用正义的力量只会给人一个名字。0x处的函数幂。。。正是这样,名称:一个名为power的函数,地址为0x…函数power的可能副本需要两个参数。谢谢Rahul Gupta和Kevin Guan。向代码中添加powerintbase、intexponent就成功了。谢谢你的帮助。
def main():
    base = int(input('Enter an integer for the base: '))
    exponent = int(input('Enter an integer for the exponent: '))
    # use `int()` function if you wish user enter a intege


    print(base,'to the power', exponent,'equals', power(base, exponent))

def power(base, exponent):
    if exponent <= 1:
       return base
    else:
       return base * power(base, exponent - 1)

main()
Enter an integer for the base: 10
Enter an integer for the exponent: 20
10 to the power 20 equals 100000000000000000000