Python 无法找出此编码的错误
我试图找出为什么我没有得到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):
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