函数的定义与使用
定义函数的基本结构
def 函数名(参数列表):
当前函数的具体功能的代码
。。。。
函数封装并不会执行,只是定义了,如果要使用定义的函数,需要进行函数的调用
函数调用
函数名()
def love():
print('I')
print('love')
print('you')
love()
I
love
you
>>>
函数定义后,不调用不执行 不能在函数定义前调用函数 函数的调用不受次数的限制
函数名不要冲突,冲突会被覆盖
函数参数
在定义函数时,小括号内可以定义形参
def love(num):
print(f'I love you {num}')
love('小花')
I love you 小花
>>>
def love(x,y):
print(f'{x}I love you {y}')
love('小花','小刚')
小花I love you 小刚
>>>
普通参数
就是位置参数,也叫顺序参数,是必须传递的参数
默认参数
如有三个参数,x,y,z,至少要传递两个,这时最好一个参数就是默认参数,默认参数需要在定义形参时指定默认值
def love(x,y,z=100):
print(x,y,z)
love(1,2)
1 2 100
>>>
收集参数
定义一个形参,收集多余的实参
在定义函数时,如果是收集参数,需要在形参前面加一个*,例如*args
接收多余的参数,会存储在args中,形成一个元组
def han(x='+',*args):
if x=='+':
print('加法运算',args)
else:
print('减法运算',args)
han('+',12,15,18)
加法运算 (12, 15, 18)
>>>
关键字参数
关键字参数定义在收集参数之后
关键字参数必须通过形参的名字来进行传递
def love(a,b,c=3,*args,name):
print(a,b,c,args)
print(name)
love(1,2,4,123,124,125,name='张三')
1 2 4 (123, 124, 125)
张三
>>>
关键字参数收集
def func(a,b,c=3,*args,name,age,**kwargs):
print(a,b,c)
print(args) #普通收集函数。会把多余的参数收集为 元组
print(name,age)
print(kwargs) #关键字参数收集,会把多余的参数收集为 字典
func(1,2,4,55,50,45,name='xiaozhang',age=25,sex='m',tel='12306',address='beijing')
1 2 4
(55, 50, 45)
xiaozhang 25
{'sex': 'm', 'tel': '12306', 'address': 'beijing'}
>>>
注意形参声明的位置
普通参数,默认参数,收集参数,关键字参数,关键字收集参数
很少出现五种参数