Python 递归函数不';t不返回额外的零
我是编程和学习python的新手。我遇到了递归,并开始思考以下代码: ''' ''' 调用“rec_count(2)”时,我得到以下输出 2. 1. 0 1. 二,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
我期望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也将打印一个