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

  • A+
所属分类:Python学习

python递归函数

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

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

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

python递归常见使用

  • 汉诺塔

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

 

  • 树状

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

  • 谢尔宾斯基三角形

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

  • 常见的递归拍照

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

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

李金龙

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: