五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

【Python系列】5. 函數(shù)與變量作用域

2021-07-14 16:20 作者:doubleyong  | 我要投稿

一、函數(shù)

函數(shù):有一定功能的代碼塊

函數(shù)作用:提高利用率(重復(fù)使用)、封裝(模塊化)


語法

? ? def 函數(shù)名(參數(shù)列表):

? ? ? ? ?函數(shù)體(代碼塊)


調(diào)用

? ? ?函數(shù)名(參數(shù))


分類

? ? ?有無參數(shù):有參函數(shù)、無參函數(shù)

? ? ?有無返回值:有返回值函數(shù)、 無返回值函數(shù)


參數(shù)

? ? ? ? 形參:定義函數(shù)時(shí)申明的參數(shù)

? ? ? ? 實(shí)參:調(diào)用函數(shù)時(shí)傳遞的參數(shù)


? ? ? ? 注:形參相當(dāng)于復(fù)制實(shí)參,引用類型的復(fù)制,形參改變了,實(shí)參也會(huì)變

? ? ? ? ?值類型的復(fù)制,形參不會(huì)改變實(shí)參


參數(shù)參型

默認(rèn)參數(shù)(形參后賦值,這個(gè)值稱為默認(rèn)值)

? ? ? ?默認(rèn)值,要在必須參數(shù)的后面


必須參數(shù)(沒有設(shè)置默認(rèn)值的就是必須參數(shù))


關(guān)鍵字參數(shù)(指定形參的名字來傳遞值)

student(age=18,name='doubleyong')


不定長參數(shù) (*變量名, *后面的變量是元組類型)

注:不定長的參數(shù)也必須放到參數(shù)的后面

def student(name, *info)? ? # 變量info 是元組類型


返回值

return 值

函數(shù)沒有return 時(shí), 返回None

注:return 可以返回多個(gè)值,并且將多個(gè)返回值,裝到一個(gè)元組中


? def add(num1,num2):

? ? ? return num1,num2,num1+num2

? result = add(5,3)

? print(result)? ? # result 為元組類型,結(jié)果為:(5,3,8)



二、變量作用域

Python 中,程序的變量并不是在哪個(gè)位置都可以訪問的,訪問權(quán)限決定于這個(gè)變量是在哪里賦值的。


變量的作用域決定了在哪一部分程序可以訪問哪個(gè)特定的變量名稱。Python的作用域一共有4種,分別是:

L (Local) 局部作用域

E (Enclosing) 閉包函數(shù)外的函數(shù)中

G (Global) 全局作用域

B (Built-in) 內(nèi)建作用域


以 L –> E –> G –>B 的規(guī)則查找,即:在局部找不到,便會(huì)去局部外的局部找(例如閉包),再找不到就會(huì)去全局找,再者去內(nèi)建中找。



全局變量? ?or? ?局部變量

python中,只有模塊(module)、類(class)、函數(shù)(def、lambda),會(huì)產(chǎn)生新的作用域


if(True):

? ? ?x = 5

print(x)

注:python中, 直接寫if結(jié)構(gòu)它是不會(huì)產(chǎn)生作用域的,所以x打印出來是5.


函數(shù)里定義的是局部變量,局部變量,當(dāng)前函數(shù)可以訪問

函數(shù)外定義是全局變量, 全局變量,所有的函數(shù)都可以訪問,不能修改,要修改,必須在前面加global


x = 5

def change():

? ? global x

? ? x=10

change()

print(x)


函數(shù)里,要修改全局變量,變量前加global

如果要修改不是自己的變量,加nonlocal,它是向上找,最先找到誰就是誰。

nonlocal, 不能找到全局的變量


y = 5

def a():

? ? y = 10

? ? def b():

? ? ? ? # y=11

? ? ? ? def c():

? ? ? ? ? ? nonlocal y

? ? ? ? ? ? y=18

? ? ? ? ? ? print('c函數(shù)中的y',y)

? ? ? ? c()

? ? ? ? print('b函數(shù)中的y',y)

? ? b()

? ? print('a函數(shù)中的y',y)


a()

print('全局中的',y)


注: nolocal會(huì)向上找,找到上級的變量后,進(jìn)行修改,但是不會(huì)找到全局變量,只限在def內(nèi)定義的變量

【Python系列】5. 函數(shù)與變量作用域的評論 (共 條)

分享到微博請遵守國家法律
那曲县| 武邑县| 西林县| 蛟河市| 班玛县| 昌宁县| 体育| 西宁市| 湖口县| 龙胜| 毕节市| 奉化市| 望谟县| 奈曼旗| 临桂县| 应城市| 柳州市| 泰宁县| 思南县| 玛沁县| 南雄市| 邵东县| 枣阳市| 旺苍县| 甘谷县| 茌平县| 叙永县| 泸州市| 巧家县| 平定县| 青海省| 佛学| 江津市| 西华县| 绥棱县| 通山县| 正蓝旗| 大悟县| 延川县| 犍为县| 阿拉善右旗|