Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.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 递归函数不';t不返回额外的零_Python_Recursion - Fatal编程技术网

Python 递归函数不';t不返回额外的零

Python 递归函数不';t不返回额外的零,python,recursion,Python,Recursion,我是编程和学习python的新手。我遇到了递归,并开始思考以下代码: ''' ''' 调用“rec_count(2)”时,我得到以下输出 2. 1. 0 1. 二, 我期望2-1-0-0-1-2作为输出。因为,当n变为0时,函数将首先打印0,然后再次返回0,因为满足了n==0条件。但是为什么不打印两次0呢?您可以这样写 def rec_count(n): print(n) if n == 0: print(n) return 0 rec_c

我是编程和学习python的新手。我遇到了递归,并开始思考以下代码: '''

'''

调用“rec_count(2)”时,我得到以下输出 2. 1. 0 1. 二,


我期望2-1-0-0-1-2作为输出。因为,当n变为0时,函数将首先打印0,然后再次返回0,因为满足了n==0条件。但是为什么不打印两次0呢?

您可以这样写

def rec_count(n):
    print(n)
    if n == 0:
        print(n)
        return 0
    rec_count(n-1)
    print(n)
电话:

输出:

2
1
0
0
1
2

你可以这样写

def rec_count(n):
    print(n)
    if n == 0:
        print(n)
        return 0
    rec_count(n-1)
    print(n)
电话:

输出:

2
1
0
0
1
2

当n==0时,第二次打印永远无法执行,因为函数以前返回过。为什么要返回任何内容?忽略递归调用的返回值<代码>打印和
返回
不是一回事。@Thierrylahuille-我得到了那部分。我错误地假设return 0也会打印当n==0时,第二次打印永远不能执行,因为函数以前会返回。为什么要返回任何东西?忽略递归调用的返回值<代码>打印和
返回
不是一回事。@Thierrylahuille-我得到了那部分。我错误地认为return 0也将打印一个