一、函数定义和调用
1.函数的定义
定义函数关键字:def
函数的作用:用来封装功能,方便好用、提高代码的复用性,使代码变得更简洁
语法:
def 函数名():
#函数内部代码
2.函数的调用: 函数名()
二、函数的返回值
1.return的作用:
返回值数目=0:返回None
返回值数目=1:返回object
返回值数目>1:返回tuple
2.疑问:为什么要用return,什么时候用return
根据需求,当需要返回的时候就返回,不需要返回的时候就不用返回
3.注意点:
return是用来给函数返回结果的,只能用在函数体中;
当函数执行到return的时候,那么这个函数执行结束;
函数没有定义return,默认的返回值是None
三、函数参数
1.参数的定义:三种形式
函数名后面的括号中定义参数
①必需参数:定义几个参数就要必须传几个参数,不能多不能少
②默认参数(缺省参数):调用的时候,可以传参也可以不传,如果传了值那么就用传入的值,如果不传那么就用默认值
③不定长参数:可以传值(1个或者多个值),也可以不传
*args:用来接收未被接收的位置参数,保存为一个元组
**kwargs:用来接收未被接收的关键字参数,保存为一个字典
- 备注:包含位置参数和关键字参数,需要先写位置参数,再写关键字参数,否则会报错
*\ **:打包(不定长参数)
*\ **:拆包(函数调用)
2.参数的传递
参数传递的两种形式:
①位置参数:位置参数(按位置进行传递)
②关键字参数:通过关键字指定传给某个参数
注意:关键字参数写在位置参数之后
定义的参数称为:形参
调用时间的传递的为:实参
四、函数的作用域
1.全局变量:
直接定义在模块(py中的变量),在整个文件中任何地方都能够访问
2.局部变量:
定义在函数中的,它的作用范围仅限于当前的作用域(定义的函数中),在函数外部无法调用
注意点:
- 不同的函数,可以定义相同的名字的局部变量,但是各用各的不会产生影响
- 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是他的作用
- 全局变量和局部变量从上图总结一句话:外面的不能访问里面的,里面的可以访问外面的
3.globe
函数内部申明全局变量
注意点:
使用globe关键字修饰的变量之前可以并不存在;
在函数内部变量定义前,引用变量会提示错误,局部变量错误:在分配前引用的局部变量‘X’
UnboundLocalEeeor:local variable ‘x’ referenced defore assignment
4.nonlocal(扩展)
nonlocal只能写在嵌套函数里面,只会修改外部函数定义值,不会修改全局变量
五、python中常见内置函数
之前接触过了的内置函数:int float bool str list tuple
dict set range len type id print input
1.常见内置函数
len 求长度
max 求最大值
min 最小值
sum 求和
2.python中高级的内置函数
2.1. enumerate
返回一个可以枚举的对象,enumerate将其组成一个索引序列,利用它可以同时获得索引和值
2.2. eval:能够识别字符串中的python表达式
取出字符串中的的内容
将字符串str当成有效的表达式来求值并返回计算结果
2.3 .exec:能识别字符串中的python代码
exec执行存储在字符串或文件中的python语句,相比于Eval,exec可以执行更复杂的python代码
执行字符串或complie方法编译过的字符
2.4.filter过滤器
2.5.map
map()函数语法:
map(function,iterable,…)
- function:函数,有2个参数
- iterable:一个或多个序列
2.6.zip:打包
对序列数据进行打包聚合为一个元组,以最短的元素为准,多余的元素不会进行打包
两组数据进行打包,转化为字典的比较常用