2024-09-28 21:32:06 发布
网友
为什么它是倒计时,然后倒计时?不想改变它,只要理解它
def bounce (n): if n > 0: print(n) bounce(n-1) print(n) bounce(4)
结果:
4 3 2 1 0 1 2 3 4
在第一个print(n)和第二个print(n)之间,所有较小的数字都将由递归处理。只有当n为零时,函数才会打印一行并返回,而不调用自身
print(n)
因此,如果我们按递归深度进行分解,我们得到:
bounce(4) |print(4) 4 1st print(n) |bounce(3) | |print(3) 3 1st print(n) | |bounce(2) | | |print(2) 2 1st print(n) | | |bounce(1) | | | |print(1) 1 1st print(n) | | | |bounce(0) | | | | |print(0) 0 2nd print(n) | | | |print(1) 1 2nd print(n) | | |print(2) 2 2nd print(n) | |print(3) 3 2nd print(n) |print(4) 4 2nd print(n)
一般来说,递归函数调用之前的操作是按顺序执行的,而调用之后的操作是按相反的顺序执行的
它向下计数,因为您打印参数(正值时),然后使用相同的值减去1进行递归调用。每个递归调用也会打印它们的输入并进行递归调用,直到达到0。(该调用仅打印0。)
由于退出每个递归调用时发生的最后一个print语句,它会进行倒计时
在第一个
print(n)
和第二个print(n)
之间,所有较小的数字都将由递归处理。只有当n为零时,函数才会打印一行并返回,而不调用自身因此,如果我们按递归深度进行分解,我们得到:
一般来说,递归函数调用之前的操作是按顺序执行的,而调用之后的操作是按相反的顺序执行的
它向下计数,因为您打印参数(正值时),然后使用相同的值减去1进行递归调用。每个递归调用也会打印它们的输入并进行递归调用,直到达到0。(该调用仅打印0。)
由于退出每个递归调用时发生的最后一个print语句,它会进行倒计时
相关问题 更多 >
编程相关推荐