我试图找出为什么我没有在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&#34;处理功能?或类似的答案,而不是32的正确答案?
答案 0 :(得分:1)
您需要使用适当的整数参数调用函数power
以获得正确的输出。
print(base,'to the power', exponent,'equals', power(int(base), int(exponent))) # call the function `power`
如果没有这个,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
答案 1 :(得分:0)
print(base,'to the power', exponent,'equals', power)
看看这条线。你没有调用函数,而只是编写函数名。
您需要调用该函数。
将power
更改为power(base,exponent)
例如,如果要计算2到3的幂,请更改以上行:
print(base,'to the power', exponent,'equals', power(2,3))
答案 2 :(得分:0)
因为power()
是一个函数,所以你需要调用它,而不仅仅是打印它
并且您的函数power()
需要两个参数,因此您可以尝试以下代码:
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
答案 3 :(得分:0)
当你有一个没有括号的函数时,返回值将告诉你函数,而不是返回值。为了获得返回值,必须分别为函数power()
插入参数,base和exponent。
此外,当一个函数使用另一个函数时 - 比如函数1使用函数2 - 您应该首先定义函数2,而不是反过来。
这应该有效:
def power(base, exponent):
if exponent <= 1:
return base
else:
return base * power(base, exponent - 1)
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(base, exponent))
main()