--- tags: python, 程式設計 --- # Python Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/)是一種廣泛使用的直譯式、進階程式、通用型程式語言。Python支援多種程式範式,包括物件導向、結構化、指令式、函數式和反射式程式。它擁有動態型別系統和垃圾回收功能,能夠自動管理記憶體使用,並且其本身擁有一個巨大而廣泛的標準庫。 --- ## Python 基本規則 來一段詩句,源自於 *python* 的`import this` 之中文翻譯 >優美優於醜陋。明瞭優於隱晦。 >簡單優於複雜。複雜優於凌亂。 >扁平優於巢狀。稀疏優於稠密。 >可讀性很重要。 由於python講究簡潔的撰寫方式,並兼顧可讀性的需求,因此縮排對python而言十分重要 *python* **副檔名**為 `.py` ## 版本 python 主要分為兩個大版本 - python2 - python3 目前主要以`python3`為主 ## 基本語句 - 迴圈 - [`for`](https://hackmd.io/@defu/python_for)語句,遍歷列表、字串、字典、集合等疊代器,依次處理疊代器中的每個元素。 - [`while`](https://hackmd.io/@defu/python_while)語句,當條件為真時,循環執行語句塊。 - 判斷 - [`if`](https://hackmd.io/@defu/python_if)語句,當條件成立時執行語句塊。經常與elif、else配合使用。 - [`with`](https://hackmd.io/@defu/python_with)語句,把一塊代碼包裹在一個上下文管理器之內。例如,在一塊代碼執行之前取得一個鎖並且在此後釋放這個鎖,或打開一個檔案並且在此後關閉它。它允許了資源取得即初始化(RAII)式行為並可替代常見的try/finally慣用法 - [`try`](https://hackmd.io/@defu/python_try)語句,與except、else、finally配合使用,處理在程式執行中出現的異常情況。 - 物件 - [`import`](https://hackmd.io/@defu/python_follow)語句,匯入一個模組或包。 - [`class`](https://hackmd.io/@defu/python_class)語句,用於定義類,它執行一塊代碼並將它的局部命名空間附屬至一個類。 - [`def`](https://hackmd.io/@defu/python_def)語句,用於定義函式和方法。 - [`del`](https://hackmd.io/@defu/python_del)語句,遞迴的進行刪除。 - [流程控制](https://hackmd.io/@defu/python_follow) - [`pass`](https://hackmd.io/@defu/python_follow)語句,充當NOP,表示此行為空,不執行任何操作。 - [`break`](https://hackmd.io/@defu/python_follow)語句,從迴圈中退出。 - [`continue`](https://hackmd.io/@defu/python_follow)語句,越過這次疊代並繼續進行下個專案。 - 其他 - [`assert`](python_assert語句)語句,用於程式調適階段時測試執行條件是否滿足。 - [`yield`](python_yield語句)語句,使用它從一個生成器中返回一個值。在版本2.5之前,生成器是惰性疊代器,資訊是單向的從生成器傳遞出來的。自從版本2.5,yield也是一個有返回值的運算子,能夠將資訊傳遞迴到生成器函式中。自從版本3.3,資訊可以傳遞通過多個堆疊層級。 - [`raise`](python_raise語句)語句,丟擲一個異常。 ## 表達式 一般來說,表達式(Expression)與語句(Statement)的最大差別在於,表達式會輸出值,而語句不總有。 > 語句不能成為表達式的一部份,所以列表和其他推導式或lambda表達式, 都是表達式,不能包含語句。這個限制的一個特定情況是賦值語句比如`a = 1`,不能形成條件語句的條件表達式的一部份。 - [運算子](https://hackmd.io/@defu/python_operator)