|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
递归: 就是函数调用自身
- >>> def recursion(): # 自己调用自己,会一直报错
- return recursion()
- >>>
- >>> recursion()
- Traceback (most recent call last):
- File "<pyshell#4>", line 1, in <module>
- recursion()
- File "<pyshell#2>", line 2, in recursion
- return recursion()
- File "<pyshell#2>", line 2, in recursion
- return recursion()
- File "<pyshell#2>", line 2, in recursion
- return recursion()
- File "<pyshell#2>", line 2, in recursion
- return recursion()
- File "<pyshell#2>", line 2, in recursion
- RuntimeError: maximum recursion depth exceeded # 超出最大深度
复制代码
python可以更改递归的深度,默认是100层,不建议设置太大
- >>> import sys
- >>> sys.setrecursionlimit(1000000) # 这里改到1000000层
复制代码
求阶乘用递归实现的例子:
- def factorial(n):
- if n == 1:
- return 1
- else:
- return n * factorial(n-1)
- number = int(input('请输入一个正整数:'))
- result = factorial(number)
- print("%d 的阶乘是:%d" % (number, result))
复制代码
求阶乘用函数实现的例子:
- def factorial(n):
- result = n
- for i in range(1, n):
- result *= i
- return result
- number = int(input('请输入一个正整数:'))
- result = factorial(number)
- print("%d 的阶乘是:%d" % (number, result))
复制代码
递归的条件:有正确的返回值;return + 函数自身 ; 在调用函数自身传参时,这个参数就有一个规律,慢慢的趋向于一个值,等到这个值出现,就return一个实数。 |
评分
-
查看全部评分
|