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