'''
函数:
1、减少代码重用性
2、易维护
3、可扩展性强
4、类型function
定义函数:
def 函数变量名():
函数的调用:
1、函数名加括号
2、函数如果没被调用,不会去执行函数内部的代码
函数的返回值:
1、函数如果没有return 默认返回None(add()=None)
2、函数通过 关键字 return 返回 值
3、函数执行时,遇到return,退出函数的执行,并返回结果
4、函数 return 能 return多个值, 把多个值 组成一个 元祖返回
l = [1,2,2,22,2,2,2,]
def add():
s = 0
return [1, 2, 3, 4,5 ,6 , 7, format, False, {}, (), [], "", None]
c = add()
'''
'''
函数的参数:
形参:
位置参数:
1、函数定义位置参数后,调用函数时,有几个位置参数,就得传几个实参
2、位置参数与实参 一一对应
默认参数(给予初始值):
1、函数在定义形参时,指定参数的 值 叫默认参数
2、调用函数时,默认参数可以不用传
3、调用函数时,如果传入 值 给默认参数,那默认参数的值 就是 传入的 值
4、默认参数必须在 位置参数的右边(实参中也一样,但是顺序可变。如:)
def func(x,y,z,l):
return(x+y+z+l)
print(func(1,2,l=3,z=8)) 打印结果为14
可变长参数:
*args:
1、能接受任意类型参数,把接收的参数组成一个元祖()
def func(x,*args): 打印结果:
print(x) 1
print(args) ([1,2,3],)
func(1,[1,2,3])
2、*iterable(能被for循环的对象)
*[1,2,3], 会把列表for循环后,把循环出的参数一个个的给到args,如下:
def func(x,*args): 打印结果:
print(x) 1
print(args) (1,2,3)
func(1,*[1,2,3])
3、调用函数时,args可以不用传(args默认为元祖())
def func(x,*args): 打印结果为:
print(x) 1
print(args) ()
func(1)
**kwargs:
1、把接收的参数组成一个字典{}(一般参数为赋值表达式)
def func(x,**kwargs): 打印结果为:
print(args) {'c': 3, 'b': 2, 'a': 1}
func(1,a=1,b=2,c=3)
2、**{"2":2, "3":3, "hello":[]} 循环字典的 key value,组成键值对 给到kwargs
def func(x,**kwargs): 打印结果为:
print(kwargs) {'2': 2, '3': 3, 'hello': []}
func(1,**{"2":2, "3":3, "hello":[]})
3、调用函数时,kwargs可以不用传(默认为{})
def func(x,**kwargs): 打印结果为:
print(x) 1
print(kwargs) {}
func(1)
'''