函数的定义:def 函数名(参数1,参数2......):
如:
必选参数
def syz(a): #只有一个a,是必填参数,调用时必须输入一个参数
print(a)
调用:
syz(‘param’)
默认参数
def power(x, n=2): #n是一个默认参数,调用时不传n的值,默认n的值为2
s = 1
whilen > 0:
n = n - 1
s = s * x
return s
调用:
power(5,2)
power(5) # 等于power(5,2)
power(5,3)
可变参数
def syz(a,*args): #参数组,*args是一个参数组,参数个数不固定
print(a)
username = args[0]
pwd = args[1]
age = args[2]
调用:
syz('aaaa','2423',2323)
syz('1s','sdf')
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
*args是可变参数,args接收的是一个tuple;
**kw是关键字参数,kw接收的是一个dict。
关键字参数
def syz2(time,**kwargs): #关键字参数
print(kwargs)
调用:
syz2('sdf')
syz2(name='nhy',age=38,time='20180912') syz2('2018',name='nhy',age=38,addr='回龙观',home='河南')
syz2(time='xx',xx='xxx')
关键字参数有什么用?它可以扩展函数的功能。比如,在person函数里,我们保证能接收到name和age这两个参数,但是,如果调用者愿意提供更多的参数,我们也能收到。试想你正在做一个用户注册的功能,除了用户名和年龄是必填项外,其他都是可选项,利用关键字参数来定义这个函数就能满足注册的需求。
参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。