《Python 程序設(shè)計》課件-2.3 變量與對象_第1頁
《Python 程序設(shè)計》課件-2.3 變量與對象_第2頁
《Python 程序設(shè)計》課件-2.3 變量與對象_第3頁
《Python 程序設(shè)計》課件-2.3 變量與對象_第4頁
《Python 程序設(shè)計》課件-2.3 變量與對象_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Python3基礎(chǔ)教程第2版慕課版2.3變量與對象本節(jié)主要內(nèi)容:變量命名規(guī)則賦值語句變量與對象對象的垃圾回收變量的共享引用2.3.1變量命名規(guī)則在Python3中,變量的命名規(guī)則如下。首字符必須是下劃線、英文字母或其他Unicode字符,可包含下劃線、英文字母、數(shù)字或其他Unicode字符。例如,_abc、速度、r_1等都是合法的變量名,而2abc、price$則不能作為變量名。變量名區(qū)分大小寫。例如,Abc和abc是兩個不同的變量。禁止使用Python保留字或關(guān)鍵字。保留字和關(guān)鍵字在Python中具有特殊意義,將保留字或關(guān)鍵字作為變量名會導(dǎo)致語法錯誤。除了命名規(guī)則外,Python還有一些變量使用慣例。首尾各有一個下劃線的變量名通常為系統(tǒng)變量。例如,_name_、_doc_都是系統(tǒng)變量。以一個下劃線開頭的變量(如_abc)不能使用“from…import*”語句從模塊導(dǎo)入。以兩個下劃線開頭的變量(如__abc)是類的私有變量。2.3.2賦值語句賦值語句用于將數(shù)據(jù)賦值給變量。Python支持多種格式的賦值語句:簡單賦值、序列賦值、多目標(biāo)賦值和增強(qiáng)賦值等。1.簡單賦值簡單賦值用于為一個變量賦值,示例代碼如下。x=1002.序列賦值序列賦值可以一次性為多個變量賦值。在序列賦值語句中,等號左側(cè)是元組或列表表示的多個變量,等號右側(cè)是元組、列表或字符串等序列表示的數(shù)據(jù)。Python按先后順序依次將數(shù)據(jù)賦值給變量示例代碼如下。>>>x,y=1,2 #直接為多個變量賦值>>>x1>>>y2示例代碼如下。>>>(x,y)=10,20 #為元組中的變量賦值>>>x10>>>y20>>>[x,y]=30,'abc’ #為列表中的變量賦值>>>x30>>>y'abc'等號右側(cè)為字符串時,Python會將字符串分解為單個字符,依次賦值給各個變量。此時,變量個數(shù)和字符個數(shù)必須相等,否則會出錯示例代碼如下。>>>(x,y)='ab' #用字符串為元組中的變量賦值>>>x'a'>>>y'b'>>>((x,y),z)='ab','cd' #用嵌套的元組為變量賦值>>>x'a'>>>y'b'>>>z'cd'>>>(x,y)='abc' #字符個數(shù)與變量個數(shù)不一致,出錯Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>ValueError:toomanyvaluestounpack(expected2)序列賦值時,可以在變量名之前使用“*”,不帶星號的變量僅匹配一個值,剩余的值作為列表賦值給帶星號的變量示例代碼如下。>>>x,*y='abcd'>>>x'a'>>>y['b','c','d']>>>*x,y='abcd' #最后第一個字符賦值給y,其他字符作為列表賦值給x>>>x['a','b','c']>>>y'd'#第一個字符賦值給x,最后一個字符賦值給z,其他字符作為列表賦值給y>>>x,*y,z='abcde'>>>x'a'>>>y['b','c','d']>>>z'e'第一個數(shù)據(jù)賦值給x,其他值作為列表賦值給y>>>x,*y=[1,2,'abc','漢字'] >>>x1>>>y[2,'abc','漢字']3.多目標(biāo)賦值多目標(biāo)賦值指用連續(xù)的多個等號將同一個數(shù)據(jù)賦值給多個變量示例代碼如下。>>>a=b=c=10 #將10賦值給變量a、b、c>>>a,b,c(10,10,10)等價于:>>>a=10>>>b=a>>>c=b4.增強(qiáng)賦值增強(qiáng)賦值指將運算符與賦值相結(jié)合的賦值語句示例代碼如下。>>>a=5>>>a+=10 #增強(qiáng)賦值,等價于a=a+10>>>a15Python中的增強(qiáng)賦值語句如表所示。+=-=*=**=//=&=|=^=>>=<<=/=%=2.3.3變量與對象因為Python將所有的數(shù)據(jù)都作為對象來處理,賦值語句會在內(nèi)存中創(chuàng)建對象和變量,以下面的賦值語句為例。x=5Python在執(zhí)行該語句時,會按順序執(zhí)行3個步驟:首先,創(chuàng)建表示整數(shù)5的對象;其次,檢查變量x是否存在,若不存在則創(chuàng)建變量x;最后,建立變量x與整數(shù)對象5的引用關(guān)系。變量x和對象5之間的關(guān)系。5x對象引用變量在Python中使用變量時,必須理解下面幾點。變量在第一次賦值時被創(chuàng)建,再次出現(xiàn)時可以直接使用。變量沒有數(shù)據(jù)類型的概念。數(shù)據(jù)類型屬于對象,它決定了對象在內(nèi)存中的存儲方式。變量引用對象。在表達(dá)式中使用變量時,變量立即被其引用的對象替代。所以變量在使用之前必須為其賦值。示例代碼如下。>>>x=5 #第一次賦值,創(chuàng)建變量x,引用對象5>>>print(x+3) #變量x被對象5替代,語句實際為print(5+3)82.3.4對象的垃圾回收當(dāng)對象沒有被引用時,其占用的內(nèi)存空間會自動被回收——稱為自動垃圾回收。Python為每一個對象創(chuàng)建一個計數(shù)器,記錄對象的引用次數(shù)。當(dāng)計數(shù)器為0時,對象被刪除,其占用的內(nèi)存被回收示例代碼如下。>>>x=5 #第一次賦值,創(chuàng)建變量x,引用整數(shù)對象5>>>type(x) #實際執(zhí)行type(5),所以輸出整數(shù)對象5的數(shù)據(jù)類型<class'int'>>>>x=1.5 #使變量x引用浮點數(shù)對象1.5,對象5被回收>>>type(x) #實際執(zhí)行type(1.5)<class'float'>>>>x='abc' #使變量x引用字符串對象'abc',對象1.5被回收>>>type(x) #實際執(zhí)行type('abc')<class'str'>Python自動完成對象的垃圾回收,在編寫程序時不需要考慮對象的回收問題??梢允褂胐el命令刪除變量,釋放其占用的內(nèi)存資源,示例代碼如下。>>>a=[1,2,3]>>>dela #刪除變量2.3.5變量的共享引用共享引用指多個變量引用了同一個對象示例代碼如下。>>>x=5>>>y=x #實際執(zhí)行y=5,與變量x同時引用整數(shù)對象5>>>print(x,y) #實際執(zhí)行print(5,5)55>>>x=6 #變量x引用新的對象6,這不影響y的引用>>>print(x,y) #實際執(zhí)行print(6,5)655x引用x=55x引用y=x6x引用x=6y5y當(dāng)變量共享引用的對象是列表、字典和類的實例對象等時,如果修改了被引用對象的值,那么所有引用該對象的變量獲得的將是改變之后的對象值,示例代碼如下。>>>x=[1,2,3]>>>y=x #使y和x引用同一個列表對象[1,2,3]>>>x[1,2,3]>>>y #輸出結(jié)果與x的輸出相同[1,2,3]>>>x[0]=5 #通過變量x修改列表對象的第一項>>>x #通過變量x輸出修改后的列表[5,2,3]>>>y #通過變量y輸出修改后的列表[5,2,3]x=[1,2,3]y=xx[0]=5可以用is操作符來判斷兩個變量是否引用了同一個對象。示例代碼如下。>>>x=5>>>a=5>>>aisx #變量a和x引用同一個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論