一、函数
1.定义:一段可以被另一段代码执行的代码
2.语法
def 函数名(参数):
函数体
return 需要返回的值
3.调用
函数名(参数)
4.参数
4.1 必传参数
a、必要传对应个数的参数
b、参数要以正确的顺序传入,参数的位置要与实际期望值一一对应
4.2 关键字参数(顺序不需要对应)
def test_function(name,age)
print(name,age)
test_function(age=20,name="Alice")
4.3 不定长参数(可以不传参数)
a. *args:可以传任意多个参数进来,通过tuple接收
def test_function(*args)
print(args)
test_function(20,"Alice")
b. **kwargs:不确定需要传多少参数,使用关键字参数的形式传递,通过字典接受
def test_function(**kwargs)
print(kwargs)
test_function(age=20,name="Alice")
c.*args、 **kwargs 同时存在,**kwargs 必须放到args后面
def test_function(*args,**kwargs)
print(kwargs)
test_function(1,2,3,age=20,name="Alice")
4.4 默认参数
函数定义时给默认值,
如果函数调用的时候传了参数,就用用户传递的参数,
如果未传参数,就用默认值
def test01(name='Anthea',age=18)
print(name,age)
test01()
5.函数的返回值
return:
5.1 如果需要返回值,写return返回内容
5.2 没有return,默认返回None
5.3 return是函数结束的标识
6.拆包
6.1:*
def test_function(*args)
print(args)
list_1=[1,2,3]
test_function(*list_1) #相当于 test_function(1,2,3)
6.2:**
def test_function(**kwargs)
print(kwargs)
dict_1={age=20,name="Alice"}
test_function(**dict) #相当于test_function(age=20,name="Alice")
7.变量
7.1 局部变量(定义在函数里面)
7.2 全局变量(定义在函数外面)
7.3 global 将局部变量设置成全局变量
固定写法:global test_str(只能定义,不能直接赋值)
8.函数的分类
8.1 内置函数
8.2 自定义函数
8.3 高阶函数
a、匿名函数(lamda):不需要起名字
res = lambda x,y:x+y
print(res(1,2))
#相当于
def test01(x,y):
return x+y
test01(1,2)
b、enumerate
获取函数以及函数对应的索引值(可以自定义索引值)
c、map、zip、filter、reduce等等