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 '''
 
posted @ 2021-06-12 14:15  Python全栈开发  阅读(71)  评论(0)    收藏  举报