我是python编程的新手,我在某些方面仍然遇到困难。现在我在使用递归函数。 我的任务是通过使用递归函数从0到3求和该数字的平方我的代码到目前为止看起来像这样:
sum = 0
n = 3
i = 1
def summe(i,sum):
sum = sum +(i*i)
if(i <= n):
i = i+1
print sum
return summe(i, sum)
else:
print sum
输出为空,即使if子句中的总和没有打印出来。我按照我在网上找到的例子,但我没有看到我做了什么特别错误。
答案 0 :(得分:0)
您从未调用过函数summe
。
答案 1 :(得分:0)
函数内部的变量有一个局部范围,你需要在函数中初始化:
def summe(i=1,sum=0):
最好将n传递给函数并在函数内部使用循环!
>>> def cal_sq(n):
... return sum(cal_sq(i)+(i*i) for i in range(1,n+1))
答案 2 :(得分:0)
您的输出为空,因为您实际上从未调用该函数,您只需定义它即可。此外,尝试避免命名变量本机Python函数和关键字,在您的情况sum
已经是一个函数。我将采用的方式如下
def addSquares(n, stop):
if n == stop:
return n*n
else:
return n*n + addSquares(n+1, stop) # Here is the recursion
例如
>>> addSquares(0, 3)
14
答案 3 :(得分:0)
它会告诉你如何调用递归,如下所示。我不明白你想要计算什么所以只是递归地添加n你可以改变你自己的计算。
sum = 0
n = 3
i = 1
global allsum
allsum = 0
def sum(n):
print n
global allsum
allsum= allsum + n
if n > 0:
sum(n-1)
sum(3)
print allsum