自学了一段时间python,突然觉得没多大意思了,没有动力了,有人跟我一样吗?知友有啥好方法推荐么?( 六 )
#lambda函数f=lambda x,y:x+yprint(f(2,5))
代码复用和函数递归
模块化设计要点:函数是程序的一种抽象,它通过封装实现代码复用。可以利用函数对程序进行模块化设计。
简而言之,就是把代码当成资源进行抽象,对代码资源化、抽象化。
函数是程序对一种基本抽象方式,它将一系列代码组织起来,通过命名供其他程序使用。对象是程序对一种高级抽象方式,它将程序代码组织为更高级别对类。模块化设计是指通过函数或对象的封装功能将程序划分成主程序、子程序、子程序与子程序间关系的表达。模块化设计体现的是一种分而治之的思想。
模块化设计有紧耦合和松耦合之分。
紧耦合:两部分之间交流紧密,无法独立存在
松耦合:两部分之间交流较少,可以独立存在
一般在设计时候选择模块内部紧耦合,模块之间松耦合。
耦合性是指程序结构中各模块之间相互关联的程度,它取决于各模块之间接口的复杂程度和调用方式。耦合性是影响软件复杂程度和设计质量的一个重要因素。
函数的递归要点:函数定义中调运函数自身的方式形成递归
函数递归的定义类似于数学归纳法
数学归纳法和递归都利用了递推思维,本质是相同的,在证明一个与自然数相关的命题P(n)时,数学归纳法采用如下步骤:证明当n取第一个值
时,命题成立。假设当
(k\u0026gt;=0,k为自然数)时命题成立,证明当
时命题也成立。综上,对于一切自然数n(n\u0026gt;=
)命题P(n)都成立。
递归的两个关键特征:
链条:计算过程中存在递归链条基例:存在一个或多个不需要再次递归的基例。1.字符串反转
对于用户输入的字符串s,输出反转后的字符串,代码如下:
def rvs(s): if s=="": return s else: return rvs(s[1print(rvs("love"))
2.一个经典的数列:斐波那契数列
对于该数列可用代码表示为:
def f(n):
if n==1 or n==2:
return 1
else:
return f(n-1)+f(n-2)
num=eval(input("请输入一个整数:"))
print(f(num))
总结模块化设计:紧耦合、松耦合函数递归的两个特征:链条、基例函数递归的实现:函数+分支语句思维导图会比这个要清楚一些:
推荐阅读
- 怎样成为一名合格的Python程序员?
- python 爬虫,咋获得输入验证码之后的搜索结果
- python的html5lib这个库咋使用啊我在网上也没有找到相关文档
- 零基础入门学习啥语言好
- 哪些是学了前端才知道的事
- 作为一个打码的,有没有一段时间特不想打码,后来是咋熬过来的
- Python3.4和3.5区别大么
- python 中 def_():...... return _有啥作用
- 新互联网网站用Java还靠谱么对比Php,Python,Ruby的话
- 30岁男,创业失败转行学python,是否很晚?也不好找工作?