函数
什么是函数:
函数是功能 过程 结果(是实现某一功能或者某些功能的命令的集合)
函数定义
def 函数名称(参数):
#缩进 函数体
1.定义函数的时候,需要确定函数的名称和参数个数
2.如果有必要的话,需要先对参数的类型做检查
3.函数的内部可以用return返回函数的结果
4.函数可以返回多个值,但是返回的结果实则是元组tuple
函数调用
格式:
print(函数名称(参数))
函数名称实则是指向函数对象的引用,可以把函数名称赋值给一个变量。
函数分类
有没有参数:
有参函数 ,无参函数
有没有返回值:
有返回值函数 ,无返回值函数
定义者分类:
系统 , 第三方
全局变量,局部变量
全局变量:
在模块内、在所有函数外面、在class外面
局部变量:
在函数内的方法内
1.局部变量的作用域:只在函数内有效
2.函数的内部是可以访问全局变量,但是不能改变全局变量
(在局部变量内可用global()来操作全局变量)
函数的参数
位置参数
- def show(a):
- return a*a
- show(a)中a就是位置参数
复制代码 默认值参数定义函数的时候,可以给参数加上默认值,调用函数的时候,如果没有给这个参数赋值,也是可以成功调用函数
注意:
1.默认值参数应该写在必选参数的后面
2. 默认值参数可以有多个,变化范围小的参数要写在变化范围大的参数前 可变参数- def word(*str):
- sum=0
- for i in str:
- sum+=i
- return sum
- li=[2,3]
- print(li(num[0],num[1]))
- 结果为:
- 6
复制代码 li列表的所有元素作为可变参数传递给了word
关键字参数
(用于扩展,使参数3为一盒列表)
格式:
def 函数名 (参数1,参数2,**参数3)
参数3为关键字参数(用于扩展,使参数3为一个列表)
命名关键字参数
函数递归
在函数的内部,可以调用其他函数,函数内部调用自己,就是递归
前提条件:
1.函数自己调用自己
2.有终止条件
- //求a的阶乘
- def sum(a):
- if n==1:
- return 1
- return n*sum(a-1)
- print(fact(3))
- 结果为:
- 6
复制代码 匿名函数定义:
lambad 表达式就是一个函数,可以赋值给一个变量,既然是表达式,可以参与运算 - lambda_b = lambda x : x if x % 2 == 0 else x+2
- print(lambda_b(6))
- print(lambda_b(7))
- 6
- 9
复制代码lambda x: x** 2 这个匿名函数的形参是x,那么可以找个变量存起来,在调用这个变量的时候传递的参数就是实参,表达式 x if x % 2 == 0 else x+2的值就是这个函数的返回值。
|