Python-12-函数_01_函数定义
1、函数定义
2、函数优点
1 # 1、python中函数定义方法: 2 3 def test(x): 4 "The function definitions" 5 x += 1 6 return x 7 8 9 # def:定义函数的关键字 10 # test:函数名 11 # ():内可定义形参 12 # "":文档描述(非必要,但是强烈建议为你的函数添加描述信息)!!!!!! 13 # x+=1:泛指代码块或程序处理逻辑 14 # return:定义返回值 15 16 # 调用运行:可以带参数也可以不带 17 # 函数名() 18 19 # 2、例子: 20 def test(x): 21 x += 1 22 return x 23 y = test(3) 24 print(y) 25 26 # 3、函数优点 27 28 # 1.代码重用 29 # 2.保持一致性,易维护 30 # 3.可扩展性 31 # 过程:没有return返回值的函数 32 33 # 4、返回个数、类型 34 # 返回值数=0:返回None 35 # 返回值数=1:返回object 36 # 返回值数>1:返回tuple
3、形参、实参、位置参数和关键字、默认参数、参数组
1 # 5、形参、实参、位置参数和关键字、默认参数、参数组 2 # 实参与形参位置一一对应;关键字:位置无需固定 3 # **字典 *列表 4 # 参数组 位置参数 5 def test(x,*args): 6 print(x) # 结果:1 7 print(args) # 结果:(2, 3, 4, 5, 6) 8 print(args[0]) #结果:2 9 test(1,2,3,4,5,6) 10 11 # 关键字 12 def test(x,**kwargs): 13 print(x) # 结果:1 14 print(kwargs) # 结果:{'y': 2} 15 test(1,y=2) 16 17 def test(x,*args,**kwargs): 18 print(x) # 结果:1 19 print(args) # 结果:(1, 2, 3, 4, 5, 4) 20 print(kwargs) # 结果:{'y': 2, 'z': 3} 21 test(1,1,2,3,4,5,4,y=2,z=3) 22 test(1,*[1,2,3],**{"y":1}) # 结果:1 (1, 2, 3) {'y': 1}
""" 实参传递方式 位置传参 序列传参 关键字传参 字典传参 """ def fun1(a, b, c): print("a=", a) print("b=", b) print("c=", c) # 位置传参:实参与形参的位置依次对应。 fun1(2,1,3) # 序列传参:实参用*将序列拆解后与形参的位置依次对应 fun1(*[1,2,3]) # 关键字传参:实参根据形参的名字进行对应。 fun1(b = 2,a = 1,c = 3) # 字典传参:实参用**将字典拆解与形参的名字进行对应。 fun1(**{"b":2,"a":1,"c":3}) # 默认(缺省)参数 def fun2(a=0, b=0, c=0): print("a=", a) print("b=", b) print("c=", c) # 可以结合关键子传参,随意选择参数 fun2(b = 2) def fun3(a, b=0, c=0): print("a=", a) print("b=", b) print("c=", c) # a 是位置参数,必须传递 fun3(1)
""" 形参传递方式 位置形参 星号元组形参 """ # 位置形参 def fun1(a,b,c): pass # 星号元组形参:收集多余位置形参 def fun2(*args): # 对于函数而言,args就是元组 print(len(args),args) fun2() fun2(1) fun2(1,2) #练习:定义函数,累加整数。 def fun3(a,*args): # 对于函数而言,args就是元组 print(len(args),args) fun3(1)
""" 形参传递方式 命名关键字形参 """ # 命名关键字形参:强制实参使用关键字传递。 def fun1(*, a, b): print(a, b) # fun1(1,2) # fun1(*[1,2]) fun1(b=2, a=1) fun1(**{"b": 2, "a": 1}) # a b 是位置传参,c,d 必须是关键字传参 def fun2(a, b, *, c, d): print(a, b, c, d) fun2(1, 2, c=3, d=4) # 星号元组形参后的,位置形参是命名关键字形参。 def fun3(*args, c, d): print(args, c, d) fun3(3,4,4,5665,d = 9,c=5) # 练习:print函数定义 # print(*args, sep=' ', end='\n', file=None) # 打印(内容,sep = “连接符号”, end = "结束符号") print("asdf",1343,sep = "$",end = "\n\n\n\n\n") print("ok") # 双型号字典形参:可以收集多余的字典关键字实参 def fun4(**kwargs): # 对于函数内部而言,就是字典 print(kwargs) # fun4(1,2,3) fun4(a = 1,c = "ccccc",d = [1,2,3],e = True) def fun5(*args,**kwargs): print(args,kwargs) fun5() fun5(23,34,a = "adsf",qtx = "qtx")