Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这个递归函数不起作用?_Python_Python 3.x_Recursion - Fatal编程技术网

Python 为什么这个递归函数不起作用?

Python 为什么这个递归函数不起作用?,python,python-3.x,recursion,Python,Python 3.x,Recursion,这是我的密码: #recursion function var = 0 def recursion_function(n): if(n > 0): var + 1 print(str(var)) recursion_function(n-1) recursion_function(6) 以下是输出: 0 0 0 0 0 0 进程已完成,退出代码为0 如何使输出如下所示: 1 2 3 4 5

这是我的密码:

#recursion function
var = 0
def recursion_function(n):
    if(n > 0):
        var + 1
        print(str(var))
        recursion_function(n-1)
recursion_function(6)
以下是输出:

0  
0  
0  
0  
0  
0  
进程已完成,退出代码为0

如何使输出如下所示:

1  
2  
3  
4  
5  
6  

请帮助,因为我找不到递归错误…

您实际上没有更改var的值。请将
var+1
替换为
var+=1

var = 0
def recursion_function(n):
    global var
    if(n > 0):
        var += 1
        print(var)
        recursion_function(n-1)
recursion_function(6)
>>>1
>>>2
>>>3
>>>4
>>>5
>>>6
在递归函数中,您没有赋值var!另外,递归函数不知道这个
var
是什么

编写代码的好方法

var = 6
def recursion_function(n):
    if(n > 0):
        print(str((var + 1)-n))
        recursion_function(n-1)
recursion_function(var)
您想要的输出:

1
2
3
4
5
6

也许你想把
var+1
分配给某个东西?最重要的是,
var
是全局的,所以您必须执行
global var
,但是在这里使用全局变量是一个糟糕的选择。使用累加器参数。
1
2
3
4
5
6