About虛擬&實際

@分享虛擬與實際的世界中所遊玩的心得紀錄,從物理化學到生命科學、從人文藝術到現代科技、從虛擬介面到實際生命體。享受的只是一種學習與體驗。若文章內容有誤,歡迎提出以供修改,對文章的回饋,歡迎寄信給我!一起分享,互相學習成長的環境。
@個人簡介在『關於韃靼』
@我是韃靼~我的信箱:chenyuquan at gmail dot com

2013年4月24日 星期三

[學習紀錄] Python-The Quick Python Book

前言:
幾經考量後,以Python為第一個學習開始了文字型態的程式語言,雖然MATLAB也學了一些,不過還是偏向科學運算為主。Linux的部分則還是先以大綱式學習為主。我是以"The Quick Python Book, Vernon L. Ceder" 這本有人推薦的書籍開始,內容相對於其他的份量較少,也描述得比較簡易(這點可能要等我研讀玩其他相關的書籍才能做評論)。在這裡的紀錄會以一些我想要記下的關鍵點,觀念,常用/重要指令、說明等等為主,也是屬於持續更新的紀錄。時間有限,珍惜每時每刻,是知足的起點。(扯遠了)

基本的目標是將基礎的章節先學過一遍,進階的部分則有空時瀏覽或者實際使用遇到時參考。

Ch 1: About Python~
快速地介紹有關Python的一些事情,如為何使用跟Python可以做到什麼,什麼不可以做到,以及介紹學習新版本Python 3。

Part II, The Essentials
Ch 2: Getting started

介紹Python的優缺點以及為什麼適合學這套程式語言,還有一些一開始必須要知道的觀念,例如help(),每套程式語言,包含LabVIEW, MATLAB都一樣,help是除了解決使用者的疑惑外,其實也同時是學習過程的一部份。而Python的界面有兩種:一種為command-line(basic interactive mode)而另一種IDLE(integrated development environment)。

小技巧:

1. Cursor點到已打過的那行後,按下enter就會“重複&貼上”那行到最新的一行。或者使用Alt-P/N瀏覽上下的歷史指令。
2. key-in一半的指令,按下Alt-/就可以自動補完相對應的指令。
3. 若"lost prompt"則輸入Ctrl-C則重新新的一行。
4. 對於IDLE上方的menu,double-clicking虛點則可以分離sub menu到其他想要的位置。

Ch 3: The quick Python overview

快速地介紹一些概要,如data types, control flow structures, Module creation以及object-oriented programming等等,非常的概念性,包含一些範例,不過說真的我很多都看不懂,誠如作者所說的,先有初步的概念(broad strokes),接著就要進入基本的練習與操作了。

Ch 4: The absolute basic (Part II, the essentials)
有介紹到的command:
while, print, del, 

(p39)ex: x = 'Can\'t get by without a backslash'
其中Can\'t 在print出來後就是Can't,但是若沒有加入"\"的話會被視為string已經結束(即只有Can是string),所以加入是要表示 ‘ 是string的一部份。 

(p43)The None Value, "None"的"N"是大寫,小寫不會有作用,然後None是用來表示空的數值(Empty Value)

(p43)提到使用者輸入資訊,可以打入:
name = input ("Name?")
會出現:
Name? XXX (XXX就是要自己打入)
然後鍵入print(name)
就會出現剛剛打的:
XXX

(p44)有Python coding conventions的整理table4.1可供參考。

Ch 5: List, tuples, and sets

這章節介紹了Lists, tuples, and sets. Lists是彈性很大,而tuples是嚴格形式的lists.

(p46)list內若有另外的list,則在計算len(長度)的時候是不會計算裡面list所含的元素數目的。

(p47)list的計算可以從前面算,也可以從後面算來(這點,LabVIEW好像就不行了)

(p48)複製新的list可以不改變原本的list而衍生應用更廣(x[:]指x全部)。ex: y = x[:]

(p48)append, extend都是直接加到最後,將list加到另外的list要用extend否則會變成list中的list.

(p50)del list[n] = list[n:n+1]

(p50)remove會先刪除list中的第一個,若要刪除多個,就必須重復使用remove指令。

單字:(p51) lexicographic 辭彙編纂的.

(p56)範例中:original = [[0], 1]
nested[0] = 'zero'
original
[['zero], 1]
original[0][0] = 0
其中original[A][B], [A]是list中的第幾個位置,因為初始位址([0])剛好是個list所以[B]是定義內部list的位置。

(p56)提到比較深入的shallow & deep討論如何複製原始的list。shallow會改變原本的list中的list,而deep則不會有任何改變。

5.8 Sets, sets的項目必須是immutable & hashable, 中文含意大概是“永不變的”以及“可細分為極小碎片/片段的”。屬於Set的有:ints, floats, strings, and tuple, 而list, dictionaries, and sets自己本身就不屬於sets. 補充sets與list & tuple兩個不一樣的點:A. sets中的原數必須是獨一的,亦即有重復的會自動刪除。B. 另外的不一樣,是sets中的排列是隨機的,無法控制。

若要將set變成sets中的一員,就必須使用到"frozensets" function了,而且建立後就不是sets了。書中範例是定義令一個變數為某個sets的變形,例如x: {1, 2, 3, 5}, z = frozensets(x), 這樣z就不再是set且可以被加入x中了。

Ch 6: String

Ch 7: Dictionaries
Ch 8: Control flow
Ch 9: Functions
Ch 10: Modules and scoping rules
Ch 11: Python programs
Ch 12: Using the filesystem
Ch 13:Reading and writing files
Ch 14: Exceptions
Ch 15: Classes and object-oriented programming
Ch 16: Graphical user interfaces

Part III, advanced language features
Ch 17: Regular expressions
Ch 18: Packages
Ch 19: Data types as objects
Ch 20: Advance object-oriented features

Part IV, where can you go from here?
Ch 21: Testing your code made easy(-er)
Ch 22: Moving from Python 2 to Python 3
Ch 23: Using Python libraries
Ch 24: Network, web, and database programming

後記:


參考:

[學習資料] Python