本篇文章為大家展示了什么是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)輸入你的選擇:
七、局部變量和全局變量
說(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)算。
運(yùn)行結(jié)果為:
十、匿名函數(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)