Python递归

Posted yzg-14

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python递归相关的知识,希望对你有一定的参考价值。

def recursion(i):
    if i / 2 > 1:  # 递归出口
        re = recursion(i / 2)
        print(‘返回值:‘, re)
    print(‘上层递归值:‘, i)
    return i


recursion(10)
# 上层递归值: 1.25
# 返回值: 1.25
# 上层递归值: 2.5
# 返回值: 2.5
# 上层递归值: 5.0
# 返回值: 5.0
# 上层递归值: 10

# 斐波那契数列:就是前两个数的和为后一个数的值(1,1,2,3,5,8,13...)
# 方式一
lis = []
for i in range(20):
    if i == 0 or i == 1:  # 第1,2项 都为1
        lis.append(1)
    else:
        lis.append(lis[i - 2] + lis[i - 1])  # 从第3项开始每项值为前两项值之和
print(lis)  # [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765]

# 方式二
def recursion2(n):
    if n == 1 or n == 2:
        return 1
    else:
        return recursion2(n - 1) + recursion2(n - 2)


for i in range(1, 21):
    ret = recursion2(i)
    print(ret, end=" ")  # 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765

技术图片

 

 

  

以上是关于Python递归的主要内容,如果未能解决你的问题,请参考以下文章

Python函数

如何在自定义PyYAML构造函数中处理递归?

executePendingTransactions 的递归入口

nodejs常用代码片段

JavaScript 代码片段

48个值得掌握的JavaScript代码片段(上)