Python实战基础14

您所在的位置:网站首页 递归的基础 Python实战基础14

Python实战基础14

2023-06-03 03:24| 来源: 网络整理| 查看: 265

1、什么是递归函数

如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就递归函数。

遵循:

必须要有出口每次递归向出口靠近 # 1-10 打印数字 def test(i): if i == 10: print('10') else: print(i) i += 1 test(i) test(1) # 1-10 的累加和 def test1(i): if i == 5: return 5 else: return i + test1(i + 1) r = test1(1) print(r)

 

2、递归函数的作用

举个例子,计算n!= 1*2*3*…*n

2.1 解决办法1:使用循环来完成 def cal(num): result,i = 1,1 while i =3,n∈N*)。

代码实现如下:

# 方法一 def my_num(x): if x == 1: return 1 elif x == 2: return 1 else: return my_num(x-1) + my_num(x -2) for i in range(1,10): print(my_num(i)) # 方法二 def fibo(n): "递归函数实现斐波那契数列" if n == 1 or n == 2: return 1 else: return fibo(n-1) + fibo(n-2) if __name__ == '__main__': n = int(input('请输入数列的项数:')) res = fibo(n) print(res) # 一行代码实现斐波那契数列 n = int(input("请输入数列的项数:")) fibo = [x[0] for x in [(a[i][0], a.append([a[i][1], a[i][0]+a[i][1]])) for a in ([[1, 1]], ) for i in range(n)]] print(fibo) 2.5 问题总结

1、RecursionError: maximum recursion depth exceeded while calling a Python object

问题描述:递归超过了最大的深度问题原因:python的递归深度默认为1000。当递归深度超过1000时,就会报错。解决方法:将递归的深度修改的大一些 import sys sys.setrecursionlimit(100000) 查看递归层数 def recursion(depth): depth += 1 print(depth) recursion(depth) recursion(0)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3