python笔记之函数参数(缺省参数,命名参数,不定长参数)

缺省参数

函数中定义带有初始值的形参
参数调用时,缺省参数可传,可不传
缺省参数一定在参数列表的最后面
缺省参数的数量没有限制

def x_y_sum(x,y=20): #缺省参数要在参数列表的最后
    print("x=",x)
    print("y=",y)
    return x+y

res1 = x_y_sum(10)      #不填参数默认缺省为20
res2 = x_y_sum(10,30)  #填写参数,缺省参数的初始值会被覆盖掉

print(res1)
print(res2)

运行结果:

x= 10
y= 20
x= 10
y= 30
30
40

命名参数

调用带有参数的函数时,通过指定参数名称传入参数的值,可以不按函数定义的参数顺序传入

def x_y_sum(x,y=20): #缺省参数要在参数列表的最后
    print("x=",x)
    print("y=",y)
    return x+y
res1 = x_y_sum(7,8)        #我们调用的时候没有添加x,y,默认22给了x,11给了y
res2 = x_y_sum(y=22,x=11)  #调用的时候添加x,y就不用管顺序是否相反,把22给了x,把11给了y
print(res1)
print(res2)

运行结果:

x= 7
y= 8
x= 11
y= 22
15
33

不定长参数

函数可以接受不定个数的参数导入
格式1:

def function([format_args,] * args)
函数调用时,传入的不定参数会被封装成元组

例如,

def any_num_sum1(x,y=10,*args):#一个 *  将不定长的参数转换为元组
    print("args={}".format(args))
    rs = x+y
    if len(args)>0:
        for arg in args:
            rs+=arg
    return  rs
res2 = any_num_sum1(100,200,300,400)  # 将100给了x,200给了y,剩余的参数给了不定长参数。一个 *  将不定长的参数转换为元组
print(res2)

运行结果:

args=(300, 400)
1000

格式2:

def function([format_args,] ** args)
函数调用时,传入的不定参数会被封装成字典

例如,

def any_num_sum1(basic_money,** money):
    print(money)
    e_money = basic_money * money["a"]
    return e_money

res2 = any_num_sum1(1000,a=200,q=300,y=400)
print(res2)  

运行结果:

{'a': 200, 'q': 300, 'y': 400}
200000

猜你喜欢

转载自blog.csdn.net/key_book/article/details/80229713
今日推荐