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