可变长参数

一,
def calc(x, y):
res = x ** y
return res
a = calc(2, 3)
print(a)
后两行还可以写为:
a=2
b=3
print(calc(a,b))
若返回两个return值,第二个则无效。

二,位置参数(必须一一对应,缺一不可,多也不可)
def text(x,y,z):
print(x)
print(y)
print(z)

text(1,2,3)
关键字参数(无需一一对应,缺一不可,多也不可)
text(y=1,x=3,z=2)
:两种方式不可以随意结合,位置参数一定要在关键字参数的左边。

三,默认参数
def handle(x, type=‘sdf’):
print(x)
print(type)

handle(87654)
默认type值,也可以修改值 handle(87654,‘song’)

四,参数组 **字典 *列表
1.def text(x, *args):
print(x)
print(args)
text(1, 2, 3, 4, 5, 6) (还可以text(1,{‘name’:‘songyue’}) )
结果为:
1
(2, 3, 4, 5, 6)
(注:第一个值赋给x,之后值以列表的形式传给args)

根据索引取特定值:
def text(x, *args):
print(x)
print(args)
print(args[0][0])
text(1,[‘songyue’,‘alex’,3])
结果为:
1
([‘songyue’, ‘alex’, 3],)
songyue
列表前加 *,是把里面的元素分别传入arg中,若不加,则是把整体传入。
def text(x, args):
print(x)
print(args)
# print(args[0][0])
text(1,
[‘x’,‘y’,‘z’])

2,将值以字典的方式传入
def text(x, **kwargs):
print(x)
print(kwargs)
text(1,y=2,z=3)
运行结果为:
1
{‘y’: 2, ‘z’: 3}

注:text(1,y=2,z=3,z=4)是错误的,一个参数不能传两个值

五,一个* 和两个 *混合使用
def text(x, *args, **kwargs):
print(x)
print(args)
print(kwargs)
text(1, *[‘asdf’, ‘sdf’], **{‘name’: ‘songyue’})

注:必须一个* 的在前,两个的在后,顺序不能变

或者:text(1,2,3,4,5,u=4,z=9) 列表以位置参数传入,字典以关键字参数传入。
结果为:
1
(2, 3, 4, 5)
{‘z’: 9, ‘u’: 4}

还可以根据索引取想要的值
print(args,args[-1]) 取倒数第一个值
print(kwargs,kwargs[‘u’])
(或者 print(kwargs,kwargs.get(‘u’)))取u中的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值