一、函数的特点与定义
特点:实现特定功能;代码复用
定义:
def <函数名>(<参数>): #所指定的参数是一种占位符,作为输入
<函数体>
return <返回值> #输出
二、函数的参数传递
1.参数的个数:可以没有,可以有一个或多个,无论哪种情况,函数名后的():必须有
2.可选参数传递:非可选参数必须在可选参数前面;可选参数可以理解为函数定义时指定默认值的参数。
def f(s,a=1): #a为可选参数
r=0
for i in range(s+1):
r+=i
return r//a
z=f(4,2)
print(z) ##结果为:5
3.可变参数传递:参数总数量不确定,*b
|
|
4.参数传递两种方式:位置传递和名称传递(以2.2中的例子为基础)
z=f(4,2)#位置传递
print('z={}'.format(z))
x=f(a=2,s=4)#名称传递
print('x={}'.format(x))
结果为:
z=5
x=5
三、局部变量和全局变量
区别:
1.局部变量是函数内部的占位符,可以和全局变量重名但是不同的变量
2.函数运算结束后,局部变量被释放掉
3.保留字global在函数内部声明全局变量
4.局部变量为组合数据类型且为创建时等于全局变量
结果为:['f', 'F', 'z'] 函数func()内没有创建l,l.append()对全局变量l进行操作,即改变了全局变量l | 结果为:['f', 'F']函数func()内创建l,l.append()对函数内定义的局部变量l进行操作,此l非彼l(即同名但不是一个变量),函数结束后此l被释放,输出l为彼l |
四、lambda函数
lambda函数用于定义简单的、可以在一行内表示的函数,是没有名字的函数,也叫匿名函数。
形式: <返回值>=lambda<参数>:<表达式>
>>> func=lambda x,y:x**y
>>> func(3,4)
81