關(guān)于python函數(shù)的建立、調(diào)用、傳參、返回值詳解
自定義函數(shù)
Python 還支持自定義函數(shù),即將一段有規(guī)律的、可重復(fù)使用的代碼定義成函數(shù),從而達(dá)到一次編寫多 次調(diào)用的目的。 1.創(chuàng)建函數(shù) 創(chuàng)建函數(shù)也稱為定義函數(shù),可以理解為創(chuàng)建一個(gè)具有某種用途的工具,使用 def 關(guān)鍵字實(shí)現(xiàn),語(yǔ)法格式如下:
def functionname([parameterlist]): ['''comments'''] [functionbody]
參數(shù)說(shuō)明:
- functionname:函數(shù)名稱,在調(diào)用函數(shù)時(shí)使用
- parameterlist:可選參數(shù),用于指定向函數(shù)中傳遞的參數(shù)。如果有多個(gè)參數(shù),各參數(shù)間使用英文逗號(hào)分隔;如不指定,則表示該函數(shù)沒(méi)有參數(shù),在調(diào)用時(shí),也不用指定參數(shù)。
- “commcnts"”:可選參數(shù),表示為函數(shù)指定注釋,注釋的內(nèi)容通常是說(shuō)明該函數(shù)的功能、要傳遞的參數(shù)的作用等,可以為用戶提供友好提示和幫助的內(nèi)容。
- functionbody: 可選參數(shù),用于指定函數(shù)體,即該函數(shù)被調(diào)用后,要執(zhí)行的功能代碼。如果函數(shù)有返回值,可以使用 rcturn 語(yǔ)句返回。如果函數(shù)只有函數(shù)體,可以使用 pass 語(yǔ)句作為占位符
調(diào)用函數(shù)
調(diào)用函數(shù)也就是執(zhí)行函數(shù)。如果把創(chuàng)建的函數(shù)理解為創(chuàng)建一個(gè)具有某種用途的工具,那么調(diào)用函數(shù)就相當(dāng)于使用該工具。調(diào)用函數(shù)的語(yǔ)法格式如下:
functionname([parametersvalue])
參數(shù)說(shuō)明: functionname:要調(diào)用的函數(shù)名稱,必須是已經(jīng)創(chuàng)建好的。 parametersvaluc: 可選參數(shù),用于指定各個(gè)參數(shù)的值。如果需要傳遞多個(gè)參數(shù)值,則各參數(shù)值間使用逗號(hào)分隔:如果該函數(shù)沒(méi)有參數(shù),則不用輸入。
函數(shù)參數(shù)的傳遞
在調(diào)用函數(shù)時(shí),大多數(shù)情況下,主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞關(guān)系,這就是有參數(shù)的函數(shù)形式。函數(shù)參數(shù)的作用是傳遞數(shù)據(jù)給函數(shù)使用,函數(shù)利用接收的數(shù)據(jù)進(jìn)行具體的操作處理。函數(shù)參數(shù)在定義函數(shù)時(shí)放在函數(shù)名稱后面的一對(duì)小括號(hào)中。
def functionname(a,b,c,d):
形參與實(shí)參
在使用函數(shù)時(shí),經(jīng)常會(huì)用到形式參數(shù)(形參)和實(shí)際參數(shù)(實(shí)參),兩者都叫作參數(shù) 形式參數(shù)和實(shí)際參數(shù)在作用上的區(qū)別如下:
形式參數(shù):在定義函數(shù)時(shí),函數(shù)名后面括號(hào)中的參數(shù)為“形式參數(shù)”,也稱形參
實(shí)際參數(shù):在調(diào)用一個(gè)函數(shù)時(shí),函數(shù)名后面括號(hào)中的參數(shù)為“實(shí)際參數(shù)”。也就是將函數(shù)的調(diào)用者提供給函數(shù)的參敏稱為實(shí)際參敏,也稱實(shí)參。
根據(jù)實(shí)參的類型不同,可以分為將實(shí)參的值傳遞給形參,和將實(shí)參的引用傳遞給形參兩種情況。其中,當(dāng)實(shí)參為不可變對(duì)象時(shí),進(jìn)行的是值傳遞;當(dāng)實(shí)參為可變對(duì)象時(shí),進(jìn)行的是引用傳遞。
實(shí)際上,值傳遞和引用傳遞的基本區(qū)別就是,進(jìn)行值傳遞后,改變形參的值,實(shí)參的值不變:而進(jìn)行引用傳遞后,改變形參的值,實(shí)參的值也一同改變。
位置參數(shù)
位置參數(shù)也稱必備參數(shù),必須按照正確的順序傳到函數(shù)中。即調(diào)用時(shí)的數(shù)量和位置必須和定義時(shí)的一樣。
在調(diào)用函數(shù)時(shí),指定的實(shí)參數(shù)量必須與形參數(shù)量一致,否則將拋出 TypeError 異常,提示缺少必要的位置參數(shù)。
在調(diào)用函數(shù)時(shí),指定的實(shí)參位置必須與形參位置一致,否則將產(chǎn)生以下兩種結(jié)果:
(1) 拋出異常。如果指定的實(shí)參與形參的位置不一致,數(shù)據(jù)類型也不一致,那么就拋出異常。
(2)不拋出異常,但是得到的結(jié)果與預(yù)期不-致。如果指定的實(shí)參與形參的位置不一致,數(shù)據(jù)類型一致,那么就不會(huì)拋出異常,但是得到的結(jié)果與預(yù)期不一致
函數(shù)返回值
可以在函數(shù)體內(nèi)使用 retum 語(yǔ)句為函數(shù)指定返回值。該返回值可以是任意類型,并且無(wú)論 return 語(yǔ)句出現(xiàn)在函數(shù)的什么位置,只要執(zhí)行,就會(huì)直接結(jié)束函數(shù)的執(zhí)行。retumn 語(yǔ)句的語(yǔ)法格式如下:
result = return [value]
result:用于保存返回結(jié)果,如果返回一個(gè)值,那么result 中保存的就是返回的一個(gè)值,該值可以是任意類型。
如果返回多個(gè)值,那么result 中保存的是一個(gè)元組。
value:可選參數(shù),用于指定要返回的值,可以返回一個(gè)值,也可以返回多個(gè)值。
局部變量
局部變量是指在函數(shù)內(nèi)部定義并使用的變量,它只在函數(shù)內(nèi)部有效。 即函數(shù)內(nèi)部的名字只在函數(shù)運(yùn)行時(shí)才會(huì)創(chuàng)建,在函數(shù)運(yùn)行之前或之后,所有的名字都不存在。
局部變量只能在函數(shù)內(nèi)部有效,在函數(shù)外部無(wú)效。如果在函數(shù)內(nèi)部和外部都定義了一個(gè)同名的變量,那么它們代表了不同的變量值。 如果在函數(shù)外部沒(méi)有定義變量,直接使用函數(shù)內(nèi)部定義的變量,就會(huì)拋出 NameEr-ror 異常。
全局變量
在程序開發(fā)中,有時(shí)需要在函數(shù)外設(shè)定變量的初始值,然后在函數(shù)內(nèi)訪問(wèn)、修改,這就需要定義全局變量。 我們把函數(shù)內(nèi)外都可以訪問(wèn)的變量,叫作全局變量。
全局變量主要有以下兩種情況:
(1)如果一個(gè)變量,在函數(shù)外定義,那么不僅在函數(shù)外可以訪問(wèn)到,在函數(shù)內(nèi)也可以訪問(wèn)到。
(2)在函數(shù)體內(nèi)使用 global 關(guān)鍵字定義變量為全局變量,在函數(shù)體外也可以訪問(wèn)該變量,并且在函數(shù)體內(nèi)可以對(duì)其進(jìn)行修改。
#定義為全局變量 global count
到此這篇關(guān)于關(guān)于python函數(shù)的建立、調(diào)用、傳參、返回值詳解的文章就介紹到這了,更多相關(guān)python函數(shù)使用詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django User 模塊之 AbstractUser 擴(kuò)展詳解
這篇文章主要介紹了Django User 模塊之 AbstractUser 擴(kuò)展詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Numpy中關(guān)于arctan和arctan2的區(qū)別
這篇文章主要介紹了Numpy中關(guān)于arctan和arctan2的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Keras 切換后端方式(Theano和TensorFlow)
這篇文章主要介紹了Keras 切換后端方式(Theano和TensorFlow),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Flask運(yùn)用Xterm實(shí)現(xiàn)交互終端的示例詳解
Xterm是一個(gè)基于X Window System的終端仿真器(Terminal Emulator),Xterm最初由MIT開發(fā),它允許用戶在X Window環(huán)境下運(yùn)行文本終端程序,本文給大家介紹了Flask運(yùn)用Xterm實(shí)現(xiàn)交互終端的示例詳解,文中有詳細(xì)的代碼講解,需要的朋友可以參考下2023-11-11