Python之函数
Posted 恋853雨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之函数相关的知识,希望对你有一定的参考价值。
python函数的定义方式:
def 函数名(参数): ‘‘‘函数描述‘‘‘ 函数体 ... return 返回值
示例:
def test(x,y): ‘‘‘求x的y次幂‘‘‘ return x**y res=test(2,3) #传入位置参数 print(res) res=test(y=3,x=2) #传入关键字参数 print(res) #------------------------------------ 8 8
函数参数的相关:
位置参数特点:必须一一对应,实参数量等于形参数量。
关键字参数特点:无须一一对应,实参数量等于形参数量。
位置参数必须在关键字参数左边:
def test(x,y,z): ‘‘‘求xyz之和‘‘‘ return x+y+z res=test(2,3,z=5) #8 res=test(2,3,y=5) #关键字参数传入y前已有位置参数3传入,故报错 res=test(x=2,3,5) #关键字参数在位置参数前传入,报错
可变参数:*args, **kwargs
*args示例:
def test(*args): ‘‘‘不定数求和‘‘‘ s=0 for i in args: #args是元组形式 s+=i return s res=test(1,2,3) print(res) #------------------------------- 6
*号的作用:传入的位置参数以元组形式(1,2,3)传给args,*args将args元组中的值拆分为位置参数传给函数:
def test(x,y,z): ‘‘‘求xyz之和‘‘‘ return x+y+z l=(1,2,3) res = test(*l) print(res)#6 l=(1,2,3,4) test(*l) print(res)#TypeError: test() takes 3 positional arguments but 4 were given
#位置参数有3个,l将其中的元素拆分开来后有4个参数,故报错
*args与位置参数混合使用:
def test(x,y,*args): #位置参数必须在*args前,否则报错 print(‘x:%s y:%s args:%s‘ %(x,y,args)) test(1,2,3,4,5) #‘x:1 y:2 args:(3, 4, 5)‘ #传入的实参中,依次传入位置参数和*args
**kwargs示例:
def test(**kwargs): print(kwargs) print(‘x:%d y:%d‘ %(kwargs[‘x‘],kwargs[‘y‘])) test(x=1, y=3) #-------------------------- {‘x‘: 1, ‘y‘: 3} #可见函数将关键字参数打包成字典传给了kwargs x:1 y:3
**号的作用:传入的关键字参数以字典的形式赋给kwargs,**kwargs将字典拆分成关键字参数的形式传给函数。
位置参数,*args,**kwargs的混合使用:
def test(x, y, *args, **kwargs): print(‘x:%s y:%s args:%s kwargs:%s‘ %(x, y, args, kwargs)) test(1,2,3,4,5,g=8,m=6) #x:1 y:2 args:(3, 4, 5) kwargs:{‘g‘: 8, ‘m‘: 6} #注意事项,传参过程中,关键字参数不可重复传给已经存在的位置参数。否则报错,即形参不可重复传值。
#x, *args, **kwargs顺序不可置换
以上是关于Python之函数的主要内容,如果未能解决你的问题,请参考以下文章