Python核心編程(第二版)學習筆記02 【第3章 Python基礎】python
2009-4-16 20:45 Tony編程
1 python語句基本規則和特殊字符:
反斜槓 \ 繼續上一行
分號 ; 將兩個語句鏈接在一行中
冒號 : 將代碼塊的頭和體分開
2 有兩種狀況不使用反斜槓也能夠跨行。1)在使用閉合操做符時,單一語句能夠跨多行,例如:小括號、中括號、大括號;2)三引號包括下的字符串也能夠跨行書寫函數
3 python中的賦值,並非直接將一個值賦給一個變量,而是將該對象的引用賦值給變量(如今我也不太清楚,下一章中應該就詳細描述了)學習
4 賦值語句沒有返回值,不像C語言中的賦值語句能夠返回值。形如:y = (x = a + b)這個表達式是錯誤的,但能夠寫成形如:y = x = a + bspa
5 增量賦值 += -= *= /= %= **= <<= >>= &= ^= |=
增量賦值的好處是,可變對象會被就地修改,無需拷貝引用
6 多重賦值 x = y = z = 1
一個值爲1的整型對象被建立,該對象的同一個引用被賦值給x,y和z
7 多元賦值 x, y, z = 1, 2, 'hello'
等號兩邊的對象都是元祖,括號被省略了。元祖的小括號是可選的。上面等價於(x, y, z) = (1, 2, 'hello')
8 交換兩個變量的值 x, y = y, x
在其餘語言中,都須要第三個臨時變量來保存中間值,python能夠直接使用多元賦值來實現
9 python中的關鍵字在模塊keyword中,由keyword.kwlist能夠查到,並能夠經過iskeyword()函數來判斷一個標識是不是關鍵字對象
10 標識符中下劃線的意義:
_xxx 看做是模塊或類的私有變量,在模塊外或類外不能被直接訪問
__xxx__ 系統定義的名字,普通變量應該避免定義這種標識符
11 在模塊、類定義、或者函數定義中第一個沒有賦值的字符串即做爲文檔字符串,經過obj.__doc__訪問內存
12 python文件結構模版
(1)起始行
(2)模塊文檔字符串
(3)模塊導入
(4)變量定義
(5)類定義
(6)函數定義
(7)主程序
13 導入一個模塊時,該模塊的主代碼將會被執行,模塊裏定義的類的主代碼也會被執行,可是模塊裏定義的函數和類中的方法在導入時不執行
全部模塊都有能力來執行代碼,最高級別的python語句即沒有縮進的代碼行,在模塊導入時會被執行作用域
14 若是一個模塊是經過腳本直接執行的,則它的__name__屬性值爲"__main__" ,不然被別的模塊導入的,則它的__name__值爲該模塊的名字文檔
15 python中不須要定義變量,也不須要類型聲明,變量類型和內存佔用都是在運行時肯定的字符串
16 引用計數器 python記錄全部使用中的對象各有多少引用,當引用爲0時,會回收這個對象所佔用的內存 增長引用計數器 當對象被建立並賦值給變量時,該對象的引用計數器被設置爲1,當同一個對象又被賦值給其它變量時、或者做爲參數傳遞給函數、方法或類實例時,新的引用被建立,引用計數器都會自動加1 如 x = 3.14 對象被建立,引用計數器值爲1 y = x 新的引用被建立,引用計數器值爲2 fun(x) 新的引用被建立,引用計數器值爲3,函數執行完後,引用計數器值減1 減小引用計數器 當對象的引用被銷燬時,引用計數器值就會減少 例如 引用離開其做用域範圍;當變量被賦值了另外一個對象時,原對象的引用計數器會自動減1;使用del語句顯示地銷燬引用 17 使用os.linesep 表示換行,這樣換行跟平臺無關