return返回值:
python函数都有返回值,函数体内无return,默认返回值None,
函数参数:
1、普通参数
严格按照顺序,将实际参数赋值给形式参数,一一对应。
例:
def send(xxx,z,content):
print(xxx,z,content) send("yy","dd",'niubi')
2、默认参数
必须放在参数列表的最后,且实际参数可以缺省和覆盖。
例:
def send(xxx,z,content=123):
print(xxx,z,content) send("yy","dd",'niubi')
运行结果:
yy dd niubi
3、指定参数
实际参数赋值给指定的形式参数。
例:
def send(xxx,z,content=123):
print(xxx,z,content) send(z="yy",xxx="dd")
运行结果:
dd yy 123
4、动态参数(一个形参接收多个实参)
(1)形参前面加*号,运行结果是元祖。
例1
def send(*arg):
print(arg)
send([1,2,'ha',78])
运行结果:
([1, 2, 'ha', 78],)
例2
def send(*arg):
print(arg)
send([1,2,'ha',78],"nima",("yoxi",54))
运行结果:
([1, 2, 'ha', 78], 'nima', ('yoxi', 54))
形式参数和实际参数前都加*,提取序列中的元素,放入结果元祖中。注:不管形参还是实参,只要前面加*,只能带一个参数
例2
def send(*arg):
print(arg)
a=[1,2,'ha',78]
send(*a)
运行结果:
(1, 2, 'ha', 78)
(2)形参前面加**,运行结果是字典。
实参必须传赋值的键值对。
例1
def f1(**args):
print(args)
li={1:"a",2:"b"}
f1(k=li)
运行结果:
{'k': {1: 'a', 2: 'b'}}
(3)万能参数
例1:
def f1(*args,**kwargs):
print(args)
print(kwargs)
f1(11,22,33,44,55,66,x1="ya",y2="ha")
运行结果:
(11, 22, 33, 44, 55, 66)
{'x1': 'ya', 'y2': 'ha'}