前言
Life is short,you need Python !(持续更新)
大纲
- 函数的定义与使用
- 代码复用和递归
- Lambda函数
- 实例 斐波那契数列与古典问
- 回顾总结
函数的定义与使用
函数的定义与理解
传统定义:一般的,在一个变化过程中,假设有两个变量x、y,如果对于任意一个x都有唯一确 定的一个y和它对应,那么就称x是自变量,y是x的函数。x的取值范围叫做这个函 数的定义域,相应y的取值范围叫做函数的值域 。
编程 函数过程中的这些语句用于完成某些有意义的工作——通常是处理文本,控制输入或计算数值。 通过在程序代码中引入函数名称和所需的参数,可在该程序中执行(或称调用)该函数。 类似过程,不过函数一般都有一个返回值。它们都可在自己结构里面调用自己,称为递归。
函数的定义与理解
函数是一段具有特定功能的、可重用的语句组 作用:降低编程难度 和 代码复用 函数是一段代码的表示。
函数的信息传递
#最简单函数的信息传递
#创建函数
def greet(username):
print(‘Hello , ’+ username )
#调用函数
greet(‘Jack')
代码greet(‘Jack’)将Jack’这个实参 传递到username这个形参上去,形参 username暂时存储了Jack’这个值, 然后再在函数体中执行函数里面的代码。
函数的使用及调用过程
函数定义时,所指定的参数是一种占位符。
函数定义后,如果不经过调用,不会被执行。
- 调用时要给出实际参数
- 实际参数替换定义中的参数
- 函数调用后得到返回值
函数的参数传递
函数可以有参数,也可以没有,但必须保留括号。
函数定义时可以为某些参数指定默认值,构成可选参数。
函数的返回值
return保留字用来传递返回值 函数可以有返回值,也可以没有。
return可以传递0个返回值,也可以传递任意 多个返回值。
函数的局部变量和全局变量
- 局部变量和全局变量是不同变量,可以重名
- 可以通过global保留字在函数内部声明全局变量
- 局部变量为组合数据类型且未创建,等同于全局变量
代码复用和递归
代码复用
代码资源化:程序代码是一种用来表达计算的"资源" 。
代码抽象化:使用函数等方法对代码赋予更高级别的定义。
代码复用:同一份代码在需要时可以被重复使用。
模块化设计
函数递归的理解
函数定义中调用函数自身的方式
函数的递归的调用过程
lambda函数
实例 斐波那契数列与古典问题
斐波那契数列
古典问题1
题目:猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个; 第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天 剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多 少个桃子?
古典问题2
题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3 个月又生一对兔子,假如兔子都不死, 从控制台输入第N个月,显示此时兔子总 数(对)。