函數(shù)是組織好的,可重復(fù)使用的,用來實現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。
成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、成都網(wǎng)站設(shè)計與策劃設(shè)計,喀什網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:喀什等地區(qū)??κ沧鼍W(wǎng)站價格咨詢:028-86922220
函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。
可以根據(jù)自己的需求自行封裝代碼塊,以便于調(diào)用。即為自定義函數(shù)。
- 函數(shù)代碼塊以 def 關(guān)鍵詞開頭,后接函數(shù)標(biāo)識符名稱和圓括號 ()。
- 任何傳入?yún)?shù)和自變量必須放在圓括號中間,圓括號之間可以用于定義參數(shù)。
- 函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。 - 函數(shù)內(nèi)容以冒號起始,并且縮進(jìn)。
- return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個值給調(diào)用方。
不帶表達(dá)式的return相當(dāng)于返回 None。
格式:
def 函數(shù)名(參數(shù)列表):
函數(shù)體默認(rèn)情況下,參數(shù)值和參數(shù)名稱是按函數(shù)聲明中定義的順序匹配起來。
無需傳遞參數(shù)時,也可不加參數(shù)
實例:
def hello(): ##def空格后加函數(shù)名hello和()
print('hello world') ##函數(shù)內(nèi)部輸出'hello world'
hello() ##調(diào)用定義好的函數(shù)測試結(jié)果:
在 python 中,類型屬于對象,變量是沒有類型的:
可更改(mutable)與不可更改(immutable)對象
不可更改的對象:strings, tuples,numbers
可以修改的對象:list,dict
- 在傳遞可變對象時,函數(shù)內(nèi)部對參量的改變會影響該對象
- 在傳遞不可變對象時,函數(shù)內(nèi)部對參數(shù)的改變對該對象本身無影響
實例:
def fun(a,b): ##定義函數(shù)fun
a = 'test' ##修改參數(shù)a的值
b[2] = 'test' ##修改參數(shù)b中的值
num = 'str' ##定義數(shù)值類型(不可變)
list_test = [2,3,4] ##定義列表類型(可變)
print(num,list_test) ##輸出傳遞參數(shù)之前的值
fun(num,list_test) ##調(diào)用函數(shù)
print(num,list_test) ##輸出傳遞參數(shù)之后的值測試結(jié)果:
- 必需參數(shù)(位置參數(shù)):
調(diào)用函數(shù)時,參數(shù)必須按照順序和對應(yīng)數(shù)量傳入。def fun(num,age,score): 函數(shù)體 fun(1,18,98) ##調(diào)用時按照順序且數(shù)量相同
- 關(guān)鍵字參數(shù):
調(diào)用函數(shù)可以不按照函數(shù)聲明的順序,關(guān)鍵字參數(shù)來確定傳入的參數(shù)值。def fun(num,age,score): 函數(shù)體 fun(age=18,score=98,num=1)
- 默認(rèn)參數(shù):
在函數(shù)聲明時為形參設(shè)定默認(rèn)值,調(diào)用函數(shù)未傳入?yún)?shù)時使用默認(rèn)參數(shù)。def fun(num=1,age=18): 函數(shù)體 fun() ##未傳參數(shù)時使用函數(shù)定義時的默認(rèn)參數(shù)
- 不定長參數(shù):
函數(shù)傳入?yún)?shù)值不定時,將多余的參數(shù)以元組形式封裝。def fun(*num): 函數(shù)體 fun('hello','1','2') ##實參數(shù)超過形參數(shù),其余參數(shù)以元組形式封裝,在函數(shù)中用num調(diào)用```
def fun(**num): ##使用可傳入字典類型的參數(shù) 函數(shù)體 fun(key1=value1,key2=value2)```
def fun(num,*,age): ##*號后面的參數(shù)必須用關(guān)鍵字傳入 函數(shù)體 fun(1,age='20')
return語句
return [表達(dá)式] 語句用于退出函數(shù),選擇性地向調(diào)用方返回一個表達(dá)式。
不帶參數(shù)值的return語句返回None。
如果返回多個值,會將多個值封裝成元組返回
def hello():
return('hello')
print(hello()) ##將函數(shù)作為參數(shù)調(diào)用時,return語句返回的值,即為函數(shù)的值
##這里相當(dāng)于print('hello')
程序的變量并不是在哪個位置都可以訪問的。
訪問權(quán)限決定于這個變量是在哪里賦值的。
變量的作用域決定了在哪一部分程序可以訪問哪個特定的變量名稱。
Python的作用域一共有4種,分別是:
- L (Local) 局部作用域
- E (Enclosing) 閉包函數(shù)外的函數(shù)中
- G (Global) 全局作用域
B (Built-in) 內(nèi)建作用域
以 L > E > G >B 的優(yōu)先級查找:x = int(2.9) # 內(nèi)建作用域
g_count = 0 # 全局作用域
def outer():
o_count = 1 # 閉包函數(shù)外的函數(shù)中
def inner():
i_count = 2 # 局部作用域- Python 中只有模塊(module),類(class)以及函數(shù)(def、lambda)才會引入新的作用域
- 其它的代碼塊(如 if/elif/else/、try/except、for/while等)內(nèi)定義的變量,在其所在作用域的其他范圍仍然生效
- 在內(nèi)部作用域需要對全局變量進(jìn)行更改時
須在內(nèi)部作用域使用global關(guān)鍵字聲明num = 1 def fun1(): global num # 需要使用 global 關(guān)鍵字聲明 print(num) num = 123 print(num) fun1() print(num)
- 在內(nèi)部作用域需要對外層非全局變量進(jìn)行更改時
須在內(nèi)部作用域使用nonlocal關(guān)鍵字聲明def outer(): num = 10 def inner(): nonlocal num # nonlocal關(guān)鍵字聲明 num = 100 print(num) inner() print(num) # num值為100 outer()
isinstance(object,classinfo)
- 來判斷一個對象是否是一個已知的類型,類似 type()。
- object -- 實例對象。
- classinfo -- 可以是直接或間接類名、基本類型或者由它們組成的元組。
- 返回值 -- 如果對象的類型與參數(shù)二的類型(classinfo)相同則返回 True,否則返回 False。
lambda 用來創(chuàng)建匿名函數(shù)。
lambda 只是一個表達(dá)式,函數(shù)體比 def 簡單很多。
lambda的主體是一個表達(dá)式,而不是一個代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去。
lambda 函數(shù)擁有自己的命名空間,且不能訪問自己參數(shù)列表之外或全局命名空間里的參數(shù)。
lambda 函數(shù)的語法只包含一個語句
lambda [arg1 [,arg2,.....argn]]:expressionfun = lambda arg1, arg2: expression
fun( 10, 20 ) ##調(diào)用時函數(shù)的返回值即expression的值
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享題目:Python基礎(chǔ)【函數(shù)】-創(chuàng)新互聯(lián)
文章位置:http://chinadenli.net/article0/dhpjoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、微信公眾號、Google、品牌網(wǎng)站設(shè)計、品牌網(wǎng)站制作、定制開發(fā)
聲明:本網(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)
猜你還喜歡下面的內(nèi)容