Python基础语法_Day15
无参数函数:
def func():
pass
func() ---->调用
有参数函数:
1. 普通参数
def func(name,age):
pass
func('aa',18) ----> 形参与实参的个数要一致
2. 可变参数:
A. def func(*args):
pass
func() ----> 函数调用时,实参的个数可以没有,也可以多个 *不能是关键字参数
func(4) func(5,'h')
88-函数之可变参数 "# 可变参数 # def add(a, b): # pass # add(1,3)" "# 定义方式: # def add(*args): # arguments 参数 # # print(args) # sum = 0 # if len(args) > 0: # for i in args: # sum += i # print('累加和是:sum:', sum) # else: # print('没有元素可计算,sum:', sum) # # # add() # ()空元组 # add(1) # (1,) # add(1, 2) # (1,2) # add(1, 2, 3, 4) # (1,2,3,4)"
B. def func(**kwargs):
pass
func(a=1,b=2) ----> 函数调用时,实参的个数可以没有,也可以多个 **必须是关键字参数
C. def func(*args,**kwargs):
pass
list1 = [1,3]
dict1 = {'1':'a','2':'b'}
func(*list1,**dict1) # func(1,3,'1'='a','2'='b')
"# def func(a, *args): # print(a, args) # # # func(2, [1, 2, 3, 4],5,'hello') # func(5,6,(4,5,7),9)" "# def func(a, b=10, c=3, **kwargs): # print(a, b, c, kwargs) # # # func(1) # 1 10 3 {} # # func(2, b=11) # 2 11 3 {} # # func(3, c=5, b=7, x=1, y=2) # 3 5 7 {'x': 1, 'y': 2}" "def func(a, *args, **kwargs): print(a, args, kwargs) t = (1, 2, 3, 4) func(1, t) # 1 ((1,2,3,4),) l = [2, 5, 8] func(1, l, c=9, b=6) # 1 ([2, 5, 8],) {'c': 9, 'b': 6}dict1 = {'1': 'a', '2': 'b', '3': 'c'} func(1, *l, **dict1) # func(1,2,5,8,1='a',2='b',3='c')"
D. 混用
def func(name,*args,**kwargs):
pass
func('tom') ----> 必须赋值
3. 默认值+关键字
def func(name,age=18):
pass
func('tom') ----》 tom 18
func('tom',age=20) --->关键字赋值
'''"
# 关键字参数:key=value def add(a, b=10): # 关键字参数 此时的b就是默认值 result = a + b print(result) # 调用 add(5) add(4, 7) # a=4,b=7 # 此时7就会覆盖b原来的默认值" "def add1(a, b=10, c=4): print(a, b, c) result = a + b + c print(result) add1(1) add1(1, 5) # 是给b赋值成功 # 给c赋值而不是给b赋值 add1(2, 6) # 默认6是赋值给b了, add1(2, c=6) # 如果想将6赋值给c,则需要结合关键字的key使用"
"使用函数的时候: def aa(**kwargs): pass aa(a=1, b='hello', c='tom') --->将关键字装包成字典" "def aa(**kwargs): print(kwargs) aa(a=1, b='hello', c='tom') # 装包:{'a': 1, 'b': 'hello', 'c': 'tom'} # 如果在开发的时候,已知一个字典 dict1 = {'a': 1, 'b': 'hello', 'c': 'tom'} aa(**dict1) # a=1, b='hello', c='tom' 拆包的过程 " "def bb(a, b, *c, **d): print(a, b, c, d) bb(1, 2) # 1 2 () {} bb(1, 2, 3, 4) # 1 2 (3,4) {} bb(1, 2, x=100, y=200) # 1 2 () {'x':100,'y':200} bb(1, 2, 3, x=100) # 1 2 (3,) {'x':100} bb(1, 2, x=100, y=200, z=100)"