1.返回值
return的作用:(1)作为函数的返回值 (2) 提前结束函数的调用 -->提高程序的性能
return后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据
def function():
# return [1, 2, 3]
# return (1, 2, 3)
return {"num1": 1, "num2": 2, "num3": 3}
如果return后面有多个数据,那么默认是元组
def divid(a, b):
shang = a//b
yushu = a%b
return shang, yushu #默认是元组
result = divid(5, 2)
print(result) # 输出(2, 1)
2.参数
(1) 缺省参数
在形参中默认有值的参数,称之为缺省参数
def my_print(name, age=18):
print("姓名:%s 年龄:%d" % (name, age))
调用函数时,缺省参数的值如果没有传入,则取默认值
如果传入了缺省参数的值,那么缺省参数的默认值将被覆盖
my_print("小刚")
# 输出 姓名:小刚 年龄:18
my_print("小强", 30)
# 输出 姓名:小强 年龄:30
注意:定义函数的时候,带有默认值的参数一定要位于参数列表的最后面;如果某个函数是缺省参数, 那么后面的参数必须全为缺省参数
def my_print(name, age=18, no="001"):
print("姓名:%s 年龄:%d" % (name, age))
def my_print(name,no, age=18):
print("姓名:%s 年龄:%d" % (name, age))
(2)不定长参数
加了星号(*)的变量args会存放所有未命名的变量参数,args为元组
def my_func(*args):
print(type(args))
print(args[0])
print(args[1])
print(args[2])
print(args[3])
# 调用
my_func(10, 3.14, True, "hello", 5, 22)
加**的变量kwargs会存放命名参数,即形如key=value的参数, kwargs为字典.
def func(**kwargs):
print(len(kwargs))
print(type(kwargs))
print(kwargs["name"])
print(kwargs["age"])
print(kwargs["no"])
func(name="小明", age=18, no="007")
如果很多个值都是不定长参数,那么这种情况下,可以将缺省参数放到 *args的后面, 但如果有**kwargs的话,**kwargs必须是最后的
def sum_nums_3(a, *args, b=22, c=33, **kwargs):
print(a)
print(b)
print(c)
print(args)
print(kwargs)
sum_nums_3(100, 200, 300, 400, 500, 600, 700, b=1, c=2, mm=800, nn=900)