1、参数:函数为了实现某项功能,得到外部数据。
2、参数的分类:必选参数、默认参数【缺省参数】、可选参数(元组类型)、关键字参数(字典类型)。
# (1)必选参数:必须要给值得。
def sum(a,b): # a,b为形参,不占用内存地址,只起一个传递参数的作用。
sum = a+b
print(sum)
pass
sum(1,2) # 1,2为实参,实实在在的占用内存地址的。必须要给。
# (2)默认参数,缺省参数。【已经默认赋值了,始终位于参数列表的尾端】
def sum1(a,b =9): # def sum1(a =8,b): # 错误,默认参数位于尾端。否则传值不正确。
print(a+b)
pass
sum1(1)
# 可都默认参数
def sum1(a=1,b =9):
print(a+b)
pass
sum1()
# (3)可变参数(接收元组类型):参数个数不确定时使用,比较灵活。
def sum3(*args):
print(args)
pass
sum3(1,23,4)
sum3("你好",12,"哈哈") # 可变参数,传入什么就是什么。
# 输出任意传入变量的和。
def sum4(*args):
result = 0
for a in args:
result +=a
pass
print(result)
pass
sum4(1,2,3,4)
# (5)关键字可变参数(接收字典类型):【**】 :来定义和传递
def keyFunc(**kwargs):
print(kwargs)
pass
# keyFunc(1,2,3),不是字典类型,不可传递。
# 先定义,再传。
dictA = {"name":"lucy","age":"18"}
keyFunc(**dictA)
# 直接传键值对。
keyFunc(name = "huahua",age = 10)
# (6)各种类型参数组合使用,根据格式相对应:
# 语法规定:可选参数必须放在关键字可选参数之前。
# def complexFunc(**kwargs, *args): # 错误
def complexFunc(*args,**kwargs):
print(args)
print(kwargs)
pass
complexFunc(1,2,34,name = "小黑") # (1, 2, 34) {'name': '小黑'}
complexFunc(name = "小何") # () {'name': '小何'} # 可以不传
complexFunc() # () {}