函數(shù)是組織好的,可重復使用的,用來實現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。

站在用戶的角度思考問題,與客戶深入溝通,找到尼瑪網(wǎng)站設(shè)計與尼瑪網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋尼瑪?shù)貐^(qū)。
函數(shù)能提高應(yīng)用的模塊性,和代碼的重復利用率。你已經(jīng)知道Python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫做用戶自定義函數(shù)。
定義一個函數(shù)
可以定義一個由自己想要功能的函數(shù),以下是簡單的規(guī)則:
1.函數(shù)代碼塊以 def 關(guān)鍵詞開頭,后接函數(shù)標識符名稱和圓括號()。
2.任何傳入?yún)?shù)和自變量必須放在圓括號中間。圓括號之間可以用于定義參數(shù)。
3.函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。
4.函數(shù)內(nèi)容以冒號起始,并且縮進。
5.return [表達式] 結(jié)束函數(shù),選擇性地返回一個值給調(diào)用方。不帶表達式的return相當于返回 None。
語法
Python 定義函數(shù)使用 def 關(guān)鍵字,一般格式如下:
1
2
def 函數(shù)名(參數(shù)列表):
函數(shù)體
默認情況下,參數(shù)值和參數(shù)名稱是按函數(shù)聲明中定義的順序匹配起來的。
示例
讓我們使用函數(shù)來輸出"Hello World!":
1
2
def hello() :
print("Hello World!")
輸出結(jié)果
hello()
Hello World!
Python的自定義函數(shù)格式中規(guī)中矩,用def引導自定義函數(shù)名,用括號給出該函數(shù)的參數(shù),在冒號后換行通過縮進確定函數(shù)體。在格式上和條件判斷語句有些相似。
如果函數(shù)名和變量名沖突了,相當于重新賦值。而python解釋是從上到下的,也就是說此時誰在下面誰占用這個變量名。剩下的那個就只能在內(nèi)存中等待垃圾回收了。
自定義函數(shù)的參數(shù):
按道理來說,即使Python不嚴格要求定義函數(shù)參數(shù),但這方面的知識有助于理解自定義函數(shù)中參數(shù)操作的情況,還是應(yīng)該說明一下的。
可以簡單地理解為在定義函數(shù)時括號中聲明的參數(shù)是我們在函數(shù)使用中會用到的參數(shù),在調(diào)用函數(shù)時括號中的變量就是參加函數(shù)運算用到的變量,換個名字參數(shù)(用于定義)和變量(用于調(diào)用)就足以理解了。
定義:
def 函數(shù)名(形參1,形參2='初始定義的內(nèi)容'):
函數(shù)中執(zhí)行的內(nèi)容
調(diào)用:
函數(shù)名(實參1)或函數(shù)名(形參2=實參2,形參1=實參1)或函數(shù)名(實參1,實參2)
Python中定義函數(shù)格式為,def+函數(shù)名:代碼塊
如:
def print_hello():
print("hello")
-:標記返回函數(shù)注釋,信息作為.__annotations__屬性提供,__annotations__屬性是字典。鍵return是用于在箭頭后檢索值的鍵。但是在Python中3.5,PEP 484 - Type Hints附加了一個含義:-用于指示函數(shù)返回的類型。它似乎也將在未來版本中強制執(zhí)行。
eg:
def test() - [1, 2, 3, 4, 5]:
pass
print(test.__annotations__)
輸出:
{'return': [1, 2, 3, 4, 5]}
1、定義函數(shù)
函數(shù)是可重用的程序。本書中已經(jīng)使用了許多內(nèi)建函數(shù),如len()函數(shù)和range()函數(shù),但是還沒自定義過函數(shù)。定義函數(shù)的語法格式如下:
def 函數(shù)名(參數(shù)):
函數(shù)體
定義函數(shù)的規(guī)則如下:
①關(guān)鍵字def用來定義一個函數(shù),它是define的縮寫。
②函數(shù)名是函數(shù)的唯一標識,函數(shù)名的命名規(guī)則遵循標識符的命名規(guī)則。
③函數(shù)名后面一定要緊跟著一個括號,括號內(nèi)的參數(shù)是可選的,括號后面要有冒號。
④函數(shù)體(statement)為一個或一組Python語句,注意要有縮進。
⑤函數(shù)體的第一行可以有文檔字符串,用于描述函數(shù)的功能,用三引號括起來。
按照定義規(guī)則,可以定義第一個函數(shù)了:
def?hello_world():
...?????print('Hello,world!')???#?注意函數(shù)體要有縮進
...
hello_world()
Hello,world!
這個函數(shù)不帶任何參數(shù),它的功能是打印出“Hello,world!”。最后一行代碼hello_world()是調(diào)用函數(shù),即讓Python執(zhí)行函數(shù)的代碼。
2、全局變量和局部變量
全局變量是定義在所有函數(shù)外的變量。例如,定義一個全局變量a,分別在函數(shù)test1()和test2()使用變量a:
a?=?100???#?全局變量
def?test1():
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
test2()
100
定義了全局變量a之后,在函數(shù)test1()和test2()內(nèi)都可以使用變量a,由此可知,全局變量的作用范圍是全局。
局部變量是在函數(shù)內(nèi)定義的變量,除了用關(guān)鍵字global修飾的變量以外。例如,在函數(shù)test1()內(nèi)定義一個局部變量a,分別在函數(shù)外和另一個函數(shù)test2()內(nèi)使用變量a:
def?test1():
...?????a?=?100???#?局部變量
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
print(a)
Traceback?(most?recent?call?last):
File?"stdin",?line?1,?in?module
NameError:?name?'a'?is?not?defined
test2()
Traceback?(most?recent?call?last):
File?"stdin",?line?1,?in?module
File?"stdin",?line?2,?in?test2
NameError:?name?'a'?is?not?defined
Python解釋器提示出錯了。由于局部變量a定義在函數(shù)test1()內(nèi),因此,在函數(shù)test1()內(nèi)可以使用變量a,但是在函數(shù)外或者另一個函數(shù)test2()內(nèi)使用變量a,都會報錯,由此可見,局部變量的作用范圍是定義它的函數(shù)內(nèi)部。
一般情況下,在函數(shù)內(nèi)聲明的變量都是局部變量,但是采用關(guān)鍵字global修飾的變量卻是全局變量:
def?test1():
...?????global?a???#?全局變量
...?????a?=?100
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
print(a)
100
test2()
100
這個程序與上個程序相比,只是在函數(shù)test1()中多了一行代碼“global a”,程序便可以正確運行了。在函數(shù)test1()中,采用關(guān)鍵字global修飾了變量a之后,變量a就變成了全局變量,不僅可以在該函數(shù)內(nèi)使用,還可以在函數(shù)外或者其他函數(shù)內(nèi)使用。
如果在某個函數(shù)內(nèi)局部變量與全局變量同名,那么在該函數(shù)中局部變量會覆蓋全局變量:
a?=?100???#?全局變量
def?test1():
...?????a?=?200???#?同名局部變量
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
200
test2()
100
由于在函數(shù)test1()中定義了一個與全局變量同名的局部變量a,因此,在函數(shù)test1()中全局變量a的值被局部變量覆蓋了,但是在函數(shù)test2()中全局變量a的值沒有被覆蓋。
綜上所述,在Python中,全局變量保存的數(shù)據(jù)供整個腳本文件使用;而局部變量只用于臨時保存數(shù)據(jù),變量僅供局部代碼塊使用。
網(wǎng)頁名稱:python的函數(shù)定義基本格式的簡單介紹
瀏覽地址:http://chinadenli.net/article40/hpiiho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、、微信公眾號、靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)頁設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)