python基础6:函数
1、格式:
def test(x,y):
...
retuen
2、特点:
代码简洁,可读性强
可扩展性
代码重用
保持一致,维护性强
3、参数:
形参、实参,以下x,y为形参,abc,“edf”为实参
形参:只有在被调用时才传递分配内存单元,在调用结束后马上释放所分配的内存单元
实参:可以是常量、变量、表达式、函数等,在调用函数时,将实参的值传递给形参
def test(x,y):
...
retuen
a = test(abc,"edf")
传递参数:
def test(x, *args)
print(x)
print(args)
a = test(1,2,3,4,5,6)
将1传递给x,2,3,4,5,6传递给args,形成个元组
1 #列表、字典都可以: 2 aa = ["a", 1] 3 def test(x, *args): 4 print(x) 5 print(args) 6 return x, args 7 bb,dd = test(1, aa) 8 print(bb,dd[0][0]) 9 #输出结果: 10 #1 11 #(['a', 1],) 12 #1 a
参数分类:
位置参数:实参与形参一一对应
关键字:位置无需固定,def test(x,y,z),test( x,z=2,y= 1),实参:y= 1为位置参数,关键字参数无需高绿位置顺序,,但是位置参数必须在前
默认参数:def test(x,y=1),test(x),形参:y=1为默认参数,位置参数必须在前
参数组:*args、**kwargs。*args:列表、元组;**kwargs:字典
def test(x, *args, **kwargs): print(x) print(args) print(kwargs) test(1, 2, 3, 4, 5, p=1, o=2) #将2,3,4,5作为一个参数传给args,(2,3,4,5) test(1, [2, 3, 4, 5], p=1, o=2) #将列表作为一个参数传给args,([2,3,4,5],) test(1, *[2, 3, 4, 5], **{"p": 1, "o": 2}) #将列表中的元素迭代传给args,(2,3,4,5) #输出结果: ''' 1 (2, 3, 4, 5) {'p': 1, 'o': 2} 1 ([2, 3, 4, 5],) {'p': 1, 'o': 2} 1 (2, 3, 4, 5) {'p': 1, 'o': 2} '''
1 def test(x, *args, **kwargs): 2 print(x) 3 print(args) 4 print(kwargs) 5 6 test(1, 2, 3, 4, 5, p=1, o=2) #将2,3,4,5作为一个参数传给args,(2,3,4,5) 7 test(1, [2, 3, 4, 5], p=1, o=2) #将列表作为一个参数传给args,([2,3,4,5],) 8 test(1, *[2, 3, 4, 5], **{"p": 1, "o": 2}) #将列表中的元素迭代传给args,(2,3,4,5) 9 #输出结果: 10 ''' 11 1 12 (2, 3, 4, 5) 13 {'p': 1, 'o': 2} 14 1 15 ([2, 3, 4, 5],) 16 {'p': 1, 'o': 2} 17 1 18 (2, 3, 4, 5) 19 {'p': 1, 'o': 2} 20 '''

浙公网安备 33010602011771号