国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

??Python面向?qū)ο蟊D肥浇虒W(xué)??,新手速成精英之路!

Cc_2011 / 3219人閱讀

前言

最近,我在群里答疑的時(shí)候,經(jīng)常碰到,小伙伴,再變量,縮進(jìn),參數(shù),方面使用錯(cuò)誤,導(dǎo)致程序運(yùn)行不來(lái)。

今天,打算自己寫(xiě)一篇。
Python 變量作用域,和生命周期。
徹底弄懂變量該怎么使用。

知識(shí)點(diǎn)

變量的使用,有作用域區(qū)別,也有生命周期的區(qū)別。

1.變量作用域

局部變量

python能夠影響變量作用域的代碼段是def、class、lamda。

def scopeTest():    localValur = 6    print(localValur)scopeTest()# print(localValur) #去除注釋這里會(huì)報(bào)錯(cuò),因?yàn)閘ocalValur是本地變量

輸出結(jié)果:

6

去掉注釋的結(jié)果:

6Traceback (most recent call last):  File "D:/PythonDemo/test--/cycleTest.py", line 6, in <module>    print(localValur) #去除注釋這里會(huì)報(bào)錯(cuò),因?yàn)閘ocalValur是本地變量NameError: name "localValur" is not defined

if/elif/else、try/except/finally、for/while 并不能涉及變量作用域的更改,也就是說(shuō)他們的代碼塊中的變量,在外部也是可以訪問(wèn)的。

for i in range(3):    localValur=i+1    passprint(i)print(localValur)

輸出結(jié)果:

23

變量搜索路徑是:本地變量->全局變量。

def scopeTest():    var = 6    print(var)  #    def innerFunc():        print(f"var:{var}")  #注意這里    innerFunc()var = 5print(var)scopeTest()print(var)

輸出結(jié)果:

56var:65

局部變量總結(jié):

①def函數(shù)里面的變量,不能和文件里面的變量共用
②def函數(shù)可以嵌套使用,并且內(nèi)部def函數(shù),可以使用外部def函數(shù)的變量。

全局變量 global 關(guān)鍵字

在我們?cè)谖募饷娑x了一個(gè)變量,想通過(guò)函數(shù)操作是不是就沒(méi)辦法了?

value=100def scopeTest():    # global value    value +=1print(value)scopeTest()print(value)

沒(méi)進(jìn)行聲明的時(shí)候,是這樣的輸出結(jié)果:

100Traceback (most recent call last):  File "D:/PythonDemo/test--/cycleTest.py", line 8, in <module>    scopeTest()  File "D:/PythonDemo/test--/cycleTest.py", line 5, in scopeTest    value +=1UnboundLocalError: local variable "value" referenced before assignment

去掉注釋:

value=100def scopeTest():    global value    value +=1print(value)scopeTest()print(value)

這個(gè)時(shí)候,函數(shù)里面,修改的結(jié)果,也會(huì)影響到文件了,輸出結(jié)果:

100101

變量生命周期

1. def函數(shù)內(nèi)的變量,在函數(shù)結(jié)束后就失效了。


2. class類,變量的生命周期

先看案例:
創(chuàng)建一個(gè)類,之后把類里面的index值改成有序值

class classTest:    index=0    arr=[]add=classTestfor i in range(5):    add.index=iarr.append(add)for cc in arr:    print(cc.index)

輸出結(jié)果:

44444

為什么結(jié)果都會(huì)變成4?因?yàn)檫@里的變量add的數(shù)據(jù)類型是一個(gè)type類。

print(type(add))
<class "type">

數(shù)組里面的值是跟著 ‘type’ 對(duì)象改變的,add 的生命周期,從聲明起就一直沒(méi)有變化。

正確寫(xiě)法:

class classTest:index=0for i in range(5):    add = classTest()    print(type(add))    add.index=i    arr.append(add)for cc in arr:    print(cc.index)

顯示結(jié)果:

<class "__main__.classTest"><class "__main__.classTest"><class "__main__.classTest"><class "__main__.classTest"><class "__main__.classTest">01234

這個(gè)時(shí)候,我們的結(jié)果就正確了。add的生命周期,在每一次創(chuàng)建的時(shí)候,就是一個(gè)新變量。

結(jié)語(yǔ)

知識(shí)點(diǎn)雖然少,但是他的重要性,無(wú)可替代,很多看似解決不了的錯(cuò)誤,依靠基礎(chǔ)知識(shí)都可以解決。

很多博主都在推薦功能的使用,我更強(qiáng)調(diào)基礎(chǔ)的訓(xùn)練。


推薦一本書(shū),確保基礎(chǔ)不掉隊(duì)。


鏈接:https://pan.baidu.com/s/1YllgwFf3aMbZLHeNyoLkUQ
提取碼:9vwh

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/121421.html

相關(guān)文章

  • 程序員這條路,選擇深耕技術(shù),還是全面學(xué)習(xí)比較好?

    摘要:前言在開(kāi)發(fā)技術(shù)和應(yīng)用市場(chǎng)完全成熟的今天,有人希望深耕技術(shù)打造出自己的一片天地,也有人想廣泛學(xué)習(xí)在程序員市場(chǎng)中游刃有余。而這本書(shū)上千的引用論文,給我指明了一條系統(tǒng)學(xué)習(xí)理論的明路。 ...

    kun_jian 評(píng)論0 收藏0
  • ??Python異常捕獲和處理??姆式教學(xué),代碼異常報(bào)錯(cuò)也能那么和諧且個(gè)性!

    ?前言 代碼出現(xiàn)異常而報(bào)錯(cuò)再正常不過(guò)了,但為什么要處理異常? 由于異常的存在,代碼運(yùn)行時(shí)會(huì)出現(xiàn)一大堆的紅色字體提示,對(duì)于程序員還好,見(jiàn)紅色報(bào)錯(cuò)見(jiàn)多了習(xí)慣了,但如果你開(kāi)發(fā)出來(lái)的東西要給別人看,那么不懂代碼的人就會(huì)一臉懵逼,對(duì)產(chǎn)品的印象都不太好了。 比如我們經(jīng)常簡(jiǎn)單網(wǎng)頁(yè)丟失的情況,其實(shí)是就是網(wǎng)頁(yè)代碼執(zhí)行時(shí)發(fā)生了異常,但有的網(wǎng)頁(yè)還是很個(gè)性的,提示的信息可能是比較人性化的,比如CSDN你收藏的文章被后臺(tái)刪...

    awesome23 評(píng)論0 收藏0
  • ??Python【文件操作】姆式教程??,計(jì)算機(jī)那么多文件,你繞不過(guò)這一關(guān)的!

    ?前言 在Python寫(xiě)代碼做項(xiàng)目時(shí),我們往往需要對(duì)多個(gè)文件進(jìn)行操作,在現(xiàn)在的源代碼文件中怎么導(dǎo)入其他文件?怎么對(duì)其他文件進(jìn)行操作?這都是經(jīng)常要面臨的問(wèn)題,尤其是爬蟲(chóng),爬到的數(shù)據(jù)放在哪里?用到的時(shí)候怎么調(diào)出來(lái)? 這就涉及到了Python的文件操作知識(shí)了,我們不可能永遠(yuǎn)都只會(huì)在一個(gè)源文件上做所有的操作,這也是必須掌握的一個(gè)知識(shí)板塊。 與此同時(shí),我的Python新手入門教程系列文章也已經(jīng)快更新完了,歡...

    forsigner 評(píng)論0 收藏0
  • 保姆級(jí)教程HTML兩萬(wàn)字筆記大總結(jié)【建議收藏】(上篇)

    摘要:標(biāo)簽不區(qū)分大小寫(xiě),但推薦小寫(xiě)。標(biāo)簽可以嵌套,但不能交叉嵌套。標(biāo)簽也稱為元素。比如行內(nèi)標(biāo)簽亦可成行內(nèi)元素。 ??HTML必備知識(shí)詳解?? 第一部分:HTML框架簡(jiǎn)介...

    paulli3 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<