Python第二十二课:python递归函数

李金龙
李金龙
管理员
505
文章
0
粉丝
Python学习评论3,981字数 445阅读模式

python递归函数

英文的Recursion从词源上分析只是"re-  (again)" + "curs- (come, happen)" 也就是重复发生,再次重现的意思。 而对应的中文翻译 ”递归“ 却表达了两个意思:”递“+”归“。 这两个意思,正是递归思想的精华所在。从这层次上来看,中文翻译反而更达意。

递归是静中有动,有去有回。

循环是动静如一,有去无回。

python递归常见使用

  • 汉诺塔

Python第二十二课:python递归函数-图片1

 

  • 树状

Python第二十二课:python递归函数-图片2

  • 谢尔宾斯基三角形

Python第二十二课:python递归函数-图片3

  • 常见的递归拍照

Python第二十二课:python递归函数-图片4

python递归代码实例

  • 递归求阶乘

所谓的求阶层,简单的就是1*2*3*4*5*6...一直乘下去

非递归版本的函数

  1. def fac(n):
  2.     result = n
  3.     for i in range(1,n):
  4.         result *= i
  5.     return result
  6. n = int(input('请输入您要计算的阶乘:'))
  7. print("您输入的是%d,它的阶乘数是:%d" % (n,fac(n)))

递归版本

  1. def fac(n):
  2.     if n==1:
  3.         return n
  4.     else:
  5.         return n * (fac(n-1))
  6. n = int(input('请输入您要计算的阶乘:'))
  7. print("您输入的是%d,它的阶乘数是:%d" % (n,fac(n)))

注:在python3中,递归的深度被限制为100,如需改变其深度,需要

  1. import sys
  2. sys.setrecursionlimit(10000) #10000为递归的深度

 


单词扩展:

  • Recursion:递归,循环

扩展阅读:


版权注释:

Python课程来源于鱼C论坛:http://bbs.fishc.com/forum-243-1.html 版块,课程内容为免费内容,如果你喜欢该课程,建议购买VIP账号支持小甲鱼,官方网店:https://fishc.taobao.com/)。

本内容为在李金龙在学习课程中做的日记记录,方便自己以后查找相关信息,另一方面也希望自己写下的东西可以帮助到别人。

课程内容:http://blog.fishc.com/3123.html

 
李金龙
  • 本文由 李金龙 发表于2017年5月5日 23:01:42
  • 转载请务必保留本文链接:https://www.lijinlong.cc/python/pyxx/1844.html
Python学习

Python3第二十八课:文件的使用

Python3文件处理: 其实一直想搞一个小工具来处理信息预埋后,产品的数据返回,比方说我发了100个帖子,他们有多少被删除了,有多少的浏览量,有多少被搜索引擎收录了,有多少用户回复,回复的重点是什么...
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证