五分鐘瞭解Python中的函式

choubou發表於2021-09-11

五分鐘瞭解Python中的函式

函式:函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的程式碼段。

函式的定義

定是函式使用def關鍵字

def myfunc(x):
    if x >= 0:
        return x    else:
        return -x

空函式

def emptyfunc():
    pass

引數檢查

def checkfunc(x):
    if not isinstance(x,(int,float)):
        raise TypeError("must be int or float type!")
    if x >= 0:
        return x
    else:
        return -x

返回多個值

def price(x):
    apple=x*2
    banana=x*2.5
    return apple,banana
a,b=price(1)

函式的引數

必選引數parameter

def printdetail1(name,age,telephone):
    print("姓名:",name)
    print("年齡:",age)
    print("電話:",telephone)
printdetail1("Jack",12,12356435678)

預設引數parameter=value

def printdetail2(name,age,telephone,gender='fale'):
    print("姓名:",name)
    print("性別:",gender)
    print("年齡:",age)
    print("電話:",telephone)
printdetail2("Jack",12,12356435678,gender='female')

可變引數*

1.不定長傳參

def fun1(*number):
    for i in number:
        print(i)fun1(1,2,3,4,5,6,7,8)

2.元組和列表的壓包

def fun2(*number):
    s=0
    for i in number:
        s+=i
    print(s)
fun2(*[1,2,3,4,5])
fun2(*(1,2,3,4,5))

關鍵引數**

使用方法一

def fun(id,name,**kargs):
    print("id:",id)
    print("name:",name)
    print("others:",kargs)
fun(2,"xiaohua",sex="man",age='12')

使用方法二

extra={'sex': 'man', 'age': 12}
def fun(id,name,**kargs):
    print("id:",id)
    print("name:",name)
    print("others:",kargs)
fun(2,"xiaohua",sex=extra['sex'],age=extra['age'])

使用方法三

extra={'sex': 'man', 'age': 12}
def fun(id,name,**kargs):
    print("id:",id)
    print("name:",name)
    print("others:",kargs)
fun(2,"xiaohua",**extra)

關鍵字引數*

def fun(name,age,*,city,job,completion):
    print("name:",name)
    print("age:",age)
    print("city:",city)
    print("job:",job)
    print("completion:",completion)
fun('Jack',12,city='shanghai',job='teacher',completion=True)

命名關鍵字引數需要一個特殊分隔符*,後面的引數被視為命名關鍵字引數

如果函式定義中已經有了一個可變引數,後面跟著的命名關鍵字引數就不再需要一個特殊分隔符*了

引數組合

def fun(parameter,*args,keyparameter,**kargs):
    print(parameter)
    print(args)
    print(keyparameter)
    print(kargs)
fun(1,*(1,2,3,4),keyparameter=True,**{'id':2})

引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數

函式的遞迴

#階乘計算
def fact(n):
    if n == 1:
        return 1
    return n * fact(n-1)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4548/viewspace-2837126/,如需轉載,請註明出處,否則將追究法律責任。

相關文章