Python之递归
2017-04-13 14:04
134 查看
所谓递归其实就是函数本身调用函数,直到满足指定条件之后一层层退出函数, 例如从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?“从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?‘从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……’”利用函数编写一个斐波那契数列
代码:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368斐波那契数列就是前面给两个数相加得到后面一个数,依次往后代码如下
#!/usr/bin/env python# _*_ coding: utf-8 _*_def Counter(n1, n2): if n1 > 10000: # 当要计算的值大于10000就退出 return print("Counter:", n1) # 输出当前计算到那个值了 n3 = n1 + n2 # 第一个值加上第一个值等于第三个值 Counter(n2, n3) # 调用计数器函数,此时第一个值是调用函数传过来的最后一个值,而第二个值是计算出来的第三个值Counter(0, 1) # 调用计数器函数输出结果
/usr/bin/python3.5 /home/ansheng/Documents/PycharmProjects/blogcodes/斐波那契.pyCounter: 0Counter: 1Counter: 1Counter: 2Counter: 3Counter: 5Counter: 8Counter: 13Counter: 21Counter: 34Counter: 55Counter: 89Counter: 144Counter: 233Counter: 377Counter: 610Counter: 987Counter: 1597Counter: 2584Counter: 4181Counter: 6765Process finished with exit code 0利用递归获取斐波那契数列中的第10个数,并将该值返回给调用者
代码:
#!/usr/bin/env python# _*_ coding: utf-8 _*_def Counter(Index, Start, End): print("第%d次计算,第一个数字是%d,第二个数字是%d" % (Index, Start, End)) if Index == 10: # 如果要计算的值是10就退出 return Start N = Start + End # N等于第一个数加上第二个数 Number = Counter(Index + 1, End, N) # 继续调用计数器函数,End相当与传给函数的第一个数,N是传给函数的第二个数 return Numberresult = Counter(1, 0, 1)print("得出的数字是:", result)输出结果
/usr/bin/python3.5 /home/ansheng/Documents/PycharmProjects/blogcodes/递归.py第1次计算,第一个数字是0,第二个数字是1第2次计算,第一个数字是1,第二个数字是1第3次计算,第一个数字是1,第二个数字是2第4次计算,第一个数字是2,第二个数字是3第5次计算,第一个数字是3,第二个数字是5第6次计算,第一个数字是5,第二个数字是8第7次计算,第一个数字是8,第二个数字是13第8次计算,第一个数字是13,第二个数字是21第9次计算,第一个数字是21,第二个数字是34第10次计算,第一个数字是34,第二个数字是55得出的数字是: 34Process finished with exit code 0
相关文章推荐
- python.递归遍历指定的目录
- 三种语言递归效率的比较matlab,python,c,lisp....
- python assert dict 断言@对比@之递归断言
- python 实现文件的递归拷贝实现代码
- Python递归展开嵌套的list
- python 实现文件的递归拷贝
- python递归删除指定目录
- Python urllib2递归抓取某个网站下图片
- 尾递归与Python对递归的支持
- python小例子之1 -- 递归遍历目录
- 用递归实现的8皇后,用光了python所有的递归深度。。。
- 如何使用python递归查找并删除某个目录下的文件
- python assert dict 断言@对比@之递归断言
- Python 递归处理文件和文件夹代码详解
- Python递归删除.svn文件夹
- Fibonacci非递归Python版
- python小例子之1 -- 递归遍历目录
- Python递归删除.svn文件夹
- python 实现文件的递归拷贝
- Python与 PHP使用递归建立多层目录函数