2Python全栈之路系列之递归

简介:

所谓递归其实就是函数本身调用函数,直到满足指定条件之后一层层退出函数, 例如

从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?“从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?‘从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……’”


  • 利用函数编写一个斐波那契数列

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

斐波那契数列就是前面给两个数相加得到后面一个数,依次往后

代码如下

1
2
3
4
5
6
7
8
9
10
11
#!/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 )   # 调用计数器函数

输出结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/ usr / bin / python3. 5  / home / ansheng / Documents / PycharmProjects / blogcodes / 斐波那契.py
Counter:  0
Counter:  1
Counter:  1
Counter:  2
Counter:  3
Counter:  5
Counter:  8
Counter:  13
Counter:  21
Counter:  34
Counter:  55
Counter:  89
Counter:  144
Counter:  233
Counter:  377
Counter:  610
Counter:  987
Counter:  1597
Counter:  2584
Counter:  4181
Counter:  6765
 
Process finished with exit code  0
  • 利用递归获取斐波那契数列中的第10个数,并将该值返回给调用者

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/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
     =  Start  +  End   # N等于第一个数加上第二个数
     Number  =  Counter(Index  +  1 , End, N)   # 继续调用计数器函数,End相当与传给函数的第一个数,N是传给函数的第二个数
     return  Number
     
result  =  Counter( 1 0 1 )
print ( "得出的数字是:" , result)

输出结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/ 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
得出的数字是:  34
 
Process finished with exit code  0









本文转自 Edenwy  51CTO博客,原文链接:http://blog.51cto.com/edeny/1915098,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
Python
请解释Python中的递归是什么?并举例说明其用法。
【2月更文挑战第25天】【2月更文挑战第85篇】请解释Python中的递归是什么?并举例说明其用法。
|
1月前
|
Python
【python】爬楼梯—递归分析(超级详细)
【python】爬楼梯—递归分析(超级详细)
C4.
|
2月前
|
算法 搜索推荐 编译器
Python递归
Python递归
C4.
13 1
|
5月前
|
机器学习/深度学习 自然语言处理 算法
【我和Python算法的初相遇】——体验递归的可视化篇
【我和Python算法的初相遇】——体验递归的可视化篇
76 1
|
4月前
|
Python
Python实现递归的方式来生成斐波那契数列
Python实现递归的方式来生成斐波那契数列
|
5月前
|
算法 Python
Python 数据结构和算法:解释什么是递归,提供一个使用递归的例子。
Python 数据结构和算法:解释什么是递归,提供一个使用递归的例子。
|
4月前
|
Python
Python 递归检测文件夹下的文件
Python 递归检测文件夹下的文件
24 0
|
27天前
|
机器学习/深度学习 存储 测试技术
使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测
使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测
|
1月前
|
JavaScript 前端开发 Docker
全栈开发实战:结合Python、Vue和Docker进行部署
【4月更文挑战第10天】本文介绍了如何使用Python、Vue.js和Docker进行全栈开发和部署。Python搭配Flask创建后端API,Vue.js构建前端界面,Docker负责应用的容器化部署。通过编写Dockerfile,将Python应用构建成Docker镜像并运行,前端部分使用Vue CLI创建项目并与后端交互。最后,通过Nginx和另一个Dockerfile部署前端应用。这种组合提升了开发效率,保证了应用的可维护性和扩展性,适合不同规模的企业使用。
|
2月前
|
Python
老男孩&路飞学城Python全栈
老男孩&路飞学城的Python全栈开发重点班由ALEX老师主讲,核心教学内容,100多天课程,近100G资料,含基础到实战。一线技术专家亲授,以案例教学引导学生逐步进入项目实战。
24 1
老男孩&路飞学城Python全栈