一,
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中的值