第一章歡迎使用python。
- 互動式解譯器。
- 編譯型程式設計語言:將程式原始碼“編譯成”目標代碼(機器語言)。編譯器將原程式翻譯成目標程式後儲存在另一個檔案中。
- 解釋型語言:解釋型語言的實現中,翻譯器並不產生目標機器代碼,而是產生易於執行的中間代碼。這種中間代碼與機器代碼是不同的。中間代碼的解釋是由軟體支援的,不能直接使用硬體。軟體解譯器通常會導致執行效率較低。用解釋型語言編寫的程式是由另一個可以理解中間代碼的解釋程式執行的。先行編譯程式不同的是,解釋程式的任務是逐一將來源程式的語句解釋成可執行檔機器指令,不需要將來源程式翻譯成目標代碼後再執行。解釋程式的優點是當語句出現語法錯誤時,可以立即引起程式員意。
- 混合型:Java很特殊,Java程式也需要編譯,但是是編譯為位元組碼,然後再Java虛擬機器上用解釋方式執行位元組碼。Python類似,用Python位元組碼解譯器負責解釋執行位元組碼。
第二章:快速入門
print語句用來在螢幕上顯示輸出結果。(c語言printf, shell使用$echo命令。)python的字串使用單引號表示。print語句中使用逗號分隔的元素輸出時會自動在彼此之間加上一個空格做分隔字元
raw_input()從標準輸入讀取資料,再把讀到的字串賦值給指定變數。
int()(1.5之前使用string.aoti()函數)把輸入的數值從字串格式轉換為整數形式。
- 程式注釋:在大多數指令碼程式設計語言和UNIX的shell語言裡,(#)表示從這個符號出現開始到該語句行結尾的文字將是一個程式注釋。
- 操作符:加減乘除取餘(+,-,*,/,%),乘方(**)。比較子(<,<=,>,>=),等於(==),不等於(!=或者<>),支援兩種不等於符號,盡量使用前者
運算式串連操作符:與(and),或(or),非(not)。Python支援類似於(3<4<5)形式的運算式
大多數標準的類型都支援“+”。包括數值,序列
- 變數和賦值:python對大小寫敏感。變數的類型動態定義,在賦值操作時確定。因此對變數及其類型預定義是不必要的。
python支援=賦值,或者類似*=的增量賦值,但是不支援n++,或者++n.
- 數字:支援四種數實值型別:int(帶正負號的整數),long(長整數),float(浮點實數),complex(複數)
python語言中的長整數的取值範圍是使用者(虛擬)記憶體能夠表示的容量。類似於Java中的BigInteger類。
- 字串:定義:引號之間連續的字元集合。(python支援‘’和""。習慣使用‘’)
分離操作符有"[]"和“[:]”。0為下標基址,-1指向最後一個字元。+是字串合併作業符,*是重複操作符
- 列表和表列:兩者與數組類似,但是他們可以容納不同類型的對象。
列表用"[]"定義,元素及長度可變。表列用圓括弧"()"定義。定義後不能再有變化。表列類似於唯讀列表。分離操作符“[]”和“[:]”
- 字典:雜湊表(hash table)資料類型(成對出現的關鍵字和值)使用“{}”定義
- 程式碼片段使用縮排
- if語句:格式:if expression : if_suite(單個或者多個語句組成的子程式碼片段)。if else, if else if ekse同理。只不過else if合并為“elif”保留字。Python語言裡沒有switch或case語句。
- while語句:格式:while expression: while_suite
- for迴圈和range()內建函數:
for var in 序列(可以為列表,表列,字串): for_suite。range()內建函數產生一個數字列表。
- 開啟一個檔案:handle = open(file_name, access_mode = 'r') 返回一個檔案對象的控制代碼
(file_name為檔案名稱字串,access_mode為”r“ 讀操作,”w“ 寫操作, ”a“ 添加操作, ”+“ 讀寫操作, ”b“ 二進位存取操作,預設的為唯讀操作”r“)
- 錯誤和例外:try: try_running_this_suite except someError: suite_if_someError_occurs (raise命令引發例外)
- 函數:
1. 定義函數: def function_name([arguments]): "optional documentation string" functuation_suite
2. 預設參數。
1. 類的定義:class class_name[(base_classes_if_any)]: "optional documentation string" static_member_declarations method_declarations
self類似C++或者Java中的this。
2. 建立類的執行個體:
- 模組:把彼此相關的Python代碼物理地組織和劃分到一個一個的檔案中去。模組可以包含可執行代碼,函數,類或者這些東西的各種組合。
1.匯入模板:import module_name 調用:點屬性記號訪問屬性
總結:使用互動式解譯器對於指令碼語言的學習者是個非常好的方法。可以避免養成很多不好的習慣。尤其是那個for和while後面的‘:’,總是容易忽略。