Python函数
函数的定义
函数是对代码块和功能的封装和定义
对有特定功能的代码进行打包命名,可直接调用
def 函数名(): #函数名的命名规则和变量的命名规则一样
函数体 #函数体就是要被执行的特定功能的代码
使用函数名加小括号,函数体就会被执行
函数名() #调用函数
函数的执行顺序
def func(): #1.定义函数 print(1) # 3.执行函数体 print(2) # 4.执行函数体 func() #2.调用函数 5.返回函数调用者
函数返回值
return(只能在函数中使用),函数体中遇到return,那么函数结束,return下边的代码不会被执行。
return将其后边的值返回给调用者,函数体中没有return时返回None,return后边没有值时返回None。
return后边可以为任何类型的值
def func(): return "你好呀" print(func()) #你好呀
函数返回值可以为多个,调用者可以接受一个元组,或用结构接受多个变量
def func(): return "123","231" g = (func()) print(g) #('123', '231')
def func():
return "123","231"
g,c = (func())
print(g,c) #123 231
函数的参数
def func(x): #定义函数时x为形参
print(x) #将实参交给形参的过程称为传参
func(a) #调用函数时a为实参
参数的分类
位置参数
def max(a,b): #形参,位置参数 c = a if a>b else b #三元运算符,找到量最大的数 return c m = max(3,5) #实参,位置参数
关键字参数
def prt(a,b): print(f"六{a}_海{b}") msg = prt(b="动",a = "月") #实参关键字参数 #六月_海动
混合参数
位置参数必须在关键字参数的前面
def prt(a,b,c,d):《错误示范》 print(f"{a}{b}_{c}{d}") msg = prt(c="海",d = "动","六","月") # 实参混合参数 #SyntaxError: positional argument follows keyword argument
def prt(a,b,c,d):《正确写法》 print(f"{a}{b}_{c}{d}") msg = prt("六","月",c="海",d = "动") #六月_海动
默认值参数
声明函数是可以给函数形参一个默认值,在调用函数时,如果对应的实参没有值,就会使用默认值
def prt(a,b,c="嗨",d= "动"): print(f"{a}{b}_{c}{d}") msg = prt("六","月",c="海",) #六月_海动
必须先声明在位置参数,才能声明关键字参数
def prt(a,b,c="嗨",d= "动"): print(f"{a}{b}_{c}{d}") msg = prt("六","月",d="动",) #六月_嗨动
小结:
在形参的角度来看
1. 位置参数
2. 默认值参数(大多数传进来的参数都是一样的, 一般用默认参数)
在实参的角度来看
1.位置参数 就是按照顺序传递
2.默认值参数(在填写参数的时候需要指定传递到形参中那个变量)
动态参数
动态位置参数
形参位置参数用 * 表示接受任意参数
def f(*args): print(args) f(1,2,"abc","4") #(1, 2, 'abc', '4')
动态位置参数必须在位置参数后边
def f(*args,a): 《错误示范》 print(args,a) f(1,2,"abc","4") #ypeError: f() missing 1 required keyword-only argument: 'a'
def f(a,*args): 《正确示范》 注:args为变量
print(f"a:{a},args:{args}")
f(1,2,"abc","4") #a:1,args:(2, 'abc', '4')
动态接受关键字参数
动态关键字参数用 ** 接收
def f(**kwargs): 注:kwargs为变量 print(f"kwargs:{kwargs}") f(a=1,b=2,c="abc",d="4") #kwargs:{'a': 1, 'b': 2, 'c': 'abc', 'd': '4'}获得一个字典
动态关键字参数要在关键字参数的后边
参数顺序:位置参数 > *args(动态位置参数) > 默认值参数 > **kwargs(动态默认参数)
浙公网安备 33010602011771号