python核心編程-第三章-我的筆記

1.語句和語法python

(1)反斜槓"\"表示語句繼續。python良好的編程習慣是一行最後不超過80個字符,一行字符過多時便須用到反斜槓換行繼續該語句。編程

PS:在使用小括號、中括號、大括號時能夠跨行書寫,無須反斜槓;三引號的字符串也能夠跨行書寫函數

(2)分號";"能夠在同一行寫多個語句。雖然python支持這麼作,但爲了代碼可讀性,通常不建議這麼作佈局

2.變量賦值spa

(1) python中,對象是引用傳遞的,而不是直接將值賦給對象  如:code

>>> a = 123
>>> b = a
>>> a
123
>>> b
123
>>> a = 456
>>> a
456
>>> b
123 

語句 a = 123,執行的是建立整型 123 以及變量a,並把a指向這個整型;對象

語句 b = a ,執行的是建立變量b 並把b指向a指向的整型123blog

在從新給a賦值時,a的指向發生變化,b的指向並無發生變化,因此在執行 a = 456 以後,a 的值是 456,b的值還是123內存

(2)多重賦值  形如x = y = z = 1,一個對象被賦予多個變量rem

(3)多元賦值  這種賦值方式的等號兩邊都是元組

>>> x, y, z = 1, 2, 'ab'
>>> x
1
>>> y
2
>>> z
'ab'

一、二、'ab'三個對象分別賦值給x,y,z  

爲了提升代碼可讀性,最後給兩邊的元組都加上括號

>>> (x, y, z) = (1, 2, 'ab')
>>> x
1
>>> y
2
>>> z
'ab'

多元賦值能夠方便的用於變量交換

>>> x = 123
>>> y = 456
>>> x
123
>>> y
456
>>> (x, y) = (y, x)
>>> x
456
>>> y
123

3.標識符

①標識符只可包含字母、數字、下劃線,首字符不可爲數字

②定義字符時須避免python關鍵字和內建字符。python關鍵字以下圖:

③python用下劃線做爲變量前綴和後綴指定特殊變量,對解釋器有特殊意義,故建議避免用下劃線做爲變量名字符的開始

4.python基本風格

(1)綜述

①註釋是必要的,但須要注意不能過分註釋,如

x = 5    #對x賦值5

這裏的註釋就是沒必要要的,由於這是句廢話

②良好的縮進風格是四個空格,避免用tab

③使用簡短而又意義豐富的標識符名稱

(2)模塊結構和佈局

①典型的python模塊結構,如圖

②除非必要,儘可能用局部變量代替全局變量

③除了真正須要執行的代碼,須要導入模塊時必須執行的代碼,幾乎因此功能代碼應該都封裝在函數或類中等待主程序調用

④python檢測模塊是被導入仍是被直接運行,用__name__系統變量:

若是模塊是被導入,__name__的值爲模塊名字

若是模塊被直接執行,__name__的值爲"__main__"

5.內存管理

(1)變量定義

①python中,變量使用前無須聲明名字和類型,將在變量第一次賦值時自動聲明

②變量仍然須要在被建立和賦值後才能使用

③變量被賦值後。能夠經過變量名直接訪問

(2)引用計數

python使用"引用計數"來保持追蹤內存中的對象。一個內部跟蹤變量,稱爲一個引用計數器,每一個對象各有多少個引用,簡稱引用計數。對象的引用計數爲0時被垃圾回收。

①增長引用計數

當對象被建立時,就建立了一個引用計數;當對象被賦值給變量時,引用計數就計爲1。

當同一個對象又被賦值給其餘變量,或者被做爲參數傳遞給函數,或做爲容器對象的一個元素時,對象的引用計數增長1。

x = 123
# 對象被建立並賦值,引用計數爲1
y = x
#對象被引用給其餘變量,引用計數加1
float(x)
#做爲參數傳遞給函數,引用計數加1
list1 = ['ab','c',x]
#成爲容器的一個元素,引用計數加1

②減小引用計數

引用計數減小包括如下情形:

一個本地引用離開了做用範圍,這種狀況最常出如今函數運行結束時因此局部變量都被銷燬,對象的引用計數隨之減小;

對象的別名被del銷燬

del y
# or del x

對象的一個別名被賦值給其餘變量

x = 456

對象從一個容器對象中被移除

list1.remove(x)

容器對象自己被銷燬

del list1

6.第一個python程序

(1)  try-except-else結構

結構:

try:
    pass
#try子塊是但願檢測錯誤的代碼塊    
except IOError,e:
    pass    
#except子塊對錯誤作出處理,當發生錯誤時執行此代碼塊
else:
    pass
#else代碼塊在try子塊檢測無誤時執行
相關文章
相關標籤/搜索