什么是Python的函數(shù)

本篇文章為大家展示了什么是Python的函數(shù),代碼簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。創(chuàng)新互聯(lián)推出阿瓦提免費(fèi)做網(wǎng)站回饋大家。

一、函數(shù)的介紹

如果在開(kāi)發(fā)程序時(shí),需要某塊代碼多次,但是為了提高編寫(xiě)的效率以及代碼的重用,所以把具有獨(dú)立功能的代碼塊組織為一個(gè)小模塊,這就是函數(shù)。

函數(shù)的語(yǔ)法格式:

def 函數(shù)名():
    函數(shù)的功能代碼

注意:python不像其他編程語(yǔ)言使用{}控制作用域,python嚴(yán)格使用縮進(jìn)控制作用域,所以在python中使用,函數(shù)要嚴(yán)格的控制縮進(jìn)。

二、函數(shù)的調(diào)用

定義了函數(shù)之后,就相當(dāng)于有了一個(gè)具有某些功能的代碼,想要讓這些代碼能夠執(zhí)行,需要調(diào)用它,調(diào)用函數(shù)很簡(jiǎn)單的,通過(guò)  函數(shù)名()  即可完成調(diào)用。

def printMenu():
    print("-----------------------------------")
    print("               1、查詢(xún)              ")
    print("               2、修改              ")
    print("               3、增加              ")
    print("-----------------------------------")
#函數(shù)的調(diào)用
printMenu()
#函數(shù)可以重復(fù)調(diào)用
printMenu()

運(yùn)行結(jié)果為:

-----------------------------------
               1、查詢(xún)              
               2、修改              
               3、增加              
-----------------------------------
-----------------------------------
               1、查詢(xún)              
               2、修改              
               3、增加              
-----------------------------------

說(shuō)明:

1.函數(shù)在調(diào)用前,一定要先聲明定義,才能使用函數(shù)

2.在聲明定義好之后,可以在需要的地方多次調(diào)用。

3.函數(shù)的調(diào)用就是函數(shù)名(),例如代碼匯總的printMenu()。

三、帶有參數(shù)的函數(shù)

參數(shù)分為實(shí)參和形參兩種形式:

實(shí)參 – 在調(diào)用函數(shù)的時(shí)候給函數(shù)參與運(yùn)算的真實(shí)數(shù)據(jù)

形參 – 在函數(shù)聲明的時(shí)候用來(lái)給真實(shí)數(shù)據(jù)做占位使用的虛擬數(shù)據(jù)

帶參數(shù)函數(shù)的定義格式:

def 函數(shù)名(形參1,形參2,形參3....):
    要執(zhí)行的代碼

舉個(gè)例子:

#定義一個(gè)具有兩個(gè)形式參數(shù)的函數(shù)
def sum(a,b):#a,b就是形參
    result = a+b
    print(result)
#sum()函數(shù)的調(diào)用
sum(4,5)#4,5就是真實(shí)參數(shù)

運(yùn)行結(jié)果為:9

帶參數(shù)函數(shù)的精髓就是,可以靈活的處理數(shù)據(jù)的運(yùn)算。

四、函數(shù)的返回值

所謂“返回值”,就是程序中函數(shù)完成一件事情后,最后給調(diào)用者的結(jié)果,就像一個(gè)例子中,計(jì)算a+b的值是直接打印出來(lái)了,但是現(xiàn)在我不想在函數(shù)里面打印出來(lái)了,我需要在函數(shù)外面使用這個(gè)結(jié)果繼續(xù)參與其他運(yùn)算該怎么辦呢?這就需要定義帶返回值的函數(shù)了。

帶返回值的函數(shù)聲明定義格式:

def function(形參...):
    函數(shù)執(zhí)行的代碼
    return 返回值

舉個(gè)例子:

def sum(a,b):
    result = a+b
    return result#result就是程序要返回出去的值
res = sum(4,5)
print(res)

運(yùn)行結(jié)果為:9

五、函數(shù)的類(lèi)型

按照格式來(lái)劃分有四種類(lèi)型,具體可以根據(jù)使用場(chǎng)景合理的設(shè)計(jì)函數(shù)的類(lèi)型。

1.無(wú)參無(wú)返回值函數(shù)

2.有參無(wú)返回值函數(shù)

3.無(wú)參有返回值函數(shù)

4.有參有返回值函數(shù)

六、函數(shù)的嵌套調(diào)用

一個(gè)函數(shù)里面卻可以使用其他函數(shù),這叫做函數(shù)的嵌套調(diào)用。

def printMenu():
    print("-----------------------------------")
    print("               1、查詢(xún)              ")
    print("               2、修改              ")
    print("               3、增加              ")
    print("-----------------------------------")
def main():
    #在main()中調(diào)用printMenu()函數(shù)
    printMenu()
    print("請(qǐng)輸入你的選擇:")
main()

運(yùn)行結(jié)果為:

-----------------------------------
               1、查詢(xún)              
               2、修改              
               3、增加              
-----------------------------------
請(qǐng)輸入你的選擇:

七、局部變量和全局變量

什么是Python的函數(shù)

說(shuō)明:上面程序中a是全局變量,b是局部變量,所以代碼在第8行出錯(cuò),錯(cuò)誤提示 NameError: name ‘b’ is not defined b變量沒(méi)有定義。

局部變量,就是在函數(shù)內(nèi)部定義的變量。

不同的函數(shù),可以定義相同的名字的局部變量,但是各用個(gè)的不會(huì)產(chǎn)生影響。

局部變量的作用,為了臨時(shí)保存數(shù)據(jù)需要在函數(shù)中定義變量來(lái)進(jìn)行存儲(chǔ),這就是它的作用。

全局變量既能在一個(gè)函數(shù)中使用,也能在其他的函數(shù)中使用,

局部變量和全局變量重名,函數(shù)內(nèi)使用的是局部變量的值,不影響外面的全局變量的值。

a = 1#全局變量
print("---1---: %d"%(a))
def test1():
    b = 2#局部變量,只能在test1中使用
    print("---2---: %d"%(b))
def test2():
    a = 3#局部變量,只能在test2中使用
    b = 4#局部變量,只能在test2中使用
    print("---3---: %d"%(a))
    print("---4---: %d"%(b))
test1()
test2()
print("---5---: %d"%(a))

運(yùn)行結(jié)果為:

---1---: 1
---2---: 2
---3---: 3
---4---: 4
---5---: 1

上面的例子可以看出,局部變量和全局變量重名,并不會(huì)修改全局變量的值,但是當(dāng)我們?cè)谝粋€(gè)函數(shù)中,就需要修改全局變量的值怎么辦呢?只需要在函數(shù)內(nèi)使用global修飾全局變量即可。

a = 1#全局變量
print("---1---: %d"%(a))
def test1():
    b = 2
    print("---2---: %d"%(b))
def test2():
    global a #在函數(shù)內(nèi)部直接使用全局變量
    a = 3    #修改全局變量的值
    b = 4
    print("---3---: %d"%(a))
    print("---4---: %d"%(b))
test1()
test2()
print("---5---: %d"%(a))

運(yùn)行結(jié)果為:

---1---: 1
---2---: 2
---3---: 3
---4---: 4
---5---: 3

第3次和第5次一樣說(shuō)明全局變量在函數(shù)內(nèi)部修改成功。

八、缺省參數(shù)

定義函數(shù)的時(shí)候可以某個(gè)參數(shù)指定默認(rèn)值,具有默認(rèn)值的參數(shù),就叫做缺省參數(shù)。

帶有默認(rèn)值的參數(shù)一定要位于參數(shù)列表的最后面。

def printInfo(name,age = 18):
    print("name = %s,age = %d"%(name,age))
printInfo("Se7eN_HOU")
printInfo("Se7eN_HOU",28)

運(yùn)行結(jié)果為:

name = Se7eN_HOU,age = 18
name = Se7eN_HOU,age = 28

第一次age未傳值的時(shí)候,打印出來(lái)的是默認(rèn)值18,第二次打印的是傳進(jìn)來(lái)的值28。

九、不定長(zhǎng)參數(shù)

使用場(chǎng)景:例如定義一個(gè)求兩個(gè)數(shù)之和的函數(shù),然后在編寫(xiě)一個(gè)求三個(gè)數(shù)之和的函數(shù),也就是說(shuō),這樣的話每多一個(gè)數(shù)就要編寫(xiě)一個(gè)函數(shù),很麻煩,這里就需要設(shè)計(jì)成為一個(gè)具有不定長(zhǎng)參數(shù)的函數(shù)。

1、帶一個(gè) “*” 的參數(shù)

用一個(gè)星號(hào) “ * ”修飾的參數(shù)是元組類(lèi)型,在使用的時(shí)候可以將傳遞多來(lái)的實(shí)際有多少個(gè)參數(shù)都放在元組里面。

def sum(*agrs):
    result = 0
    for x in agrs:
        result += x
    print(result)
sum(1)
sum(1,2)
sum(1,2,3)

運(yùn)行結(jié)果為:1、3、6

2、帶兩個(gè)“**”的不定長(zhǎng)參數(shù)

用兩個(gè)星號(hào)“**”修飾的參數(shù)是字典類(lèi)型,在使用的時(shí)候可以以字典的形式傳遞多個(gè)值給到函數(shù)參與運(yùn)算。

什么是Python的函數(shù)

運(yùn)行結(jié)果為:

什么是Python的函數(shù)

十、匿名函數(shù)

用lambda關(guān)鍵詞能創(chuàng)建小型匿名函數(shù)。這種函數(shù)得名于省略了用def聲明函數(shù)的標(biāo)準(zhǔn)步驟。lambda函數(shù)的語(yǔ)法只包含一個(gè)語(yǔ)句,如下:

lambda [arg1 [,arg2,...,agrn]]:expression

實(shí)例如下:

sum = lambda arg1,agr2:arg1+agr2
#調(diào)用sum函數(shù)
print("sum :%d"%sum(10,20))

運(yùn)行結(jié)果為:30

Lambda函數(shù)能接收任何數(shù)量的參數(shù)但只能返回一個(gè)表達(dá)式的值。

匿名函數(shù)不能直接調(diào)用print,因?yàn)閘ambda需要一個(gè)表達(dá)式。

使用場(chǎng)景

1、函數(shù)作為參數(shù)傳遞

def fun(a,b,opt):
    print("a=%s"%(a))
    print("b=%s"%(b))
    print("result = %s"%opt(a,b))
fun(1,2,lambda x,y:x+y)

運(yùn)行結(jié)果為:

a=1
b=2
result = 3

2、作為內(nèi)置函數(shù)的參數(shù)

stus = [{"name":"zhangsan","age":18},{"name":"lis","age":19},{"name":"wangwu","age":17}]

按name排序

stus.sort(key = lambda x:x["name"])
print(stus)

運(yùn)行結(jié)果為:[{'name': 'lis', 'age': 19}, {'name': 'wangwu', 'age': 17}, {'name': 'zhangsan', 'age': 18}]

按age排序

stus.sort(key =lambda x:x["age"])
print(stus)

運(yùn)行結(jié)果為:[{'name': 'wangwu', 'age': 17}, {'name': 'zhangsan', 'age': 18}, {'name': 'lis', 'age': 19}]

上述內(nèi)容就是什么是Python的函數(shù),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前標(biāo)題:什么是Python的函數(shù)
本文URL:http://bm7419.com/article38/goccpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、微信公眾號(hào)、服務(wù)器托管、微信小程序Google、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)