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)"
?
|