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(动态默认参数)

 

posted on 2019-01-11 15:20  六月_海动  阅读(50)  评论(0)    收藏  举报