trekhleb /learn-python
📚 Playground and cheatsheet for learning Python. Collection of Python scripts that are split by topics and contain code examples with explanations.
★ 18,505⑂ 2,994
18,505
stars
+25+26+147
2,994
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions
README
學習 Python 的練習場(Playground)和速查表(Cheatsheet)
此專案依據 目錄 分類收集了 Python 腳本,包含了程式碼範例及解釋、不同的使用情境以及衍伸閱讀連結。
_閱讀英文原始版本:_ _English_, _Português_, _Español_, _Українська_.
此專案名稱之所以叫做 練習場(Playground),是因為您可以修改或是新增程式碼至範例中去觀察程式執行流程並使用斷言關鍵字(assert)來 測試程式。同時,此專案也使用了業界常用的工具來 檢查程式碼,確保您所撰寫的程式碼符合官方建議的 Python 程式碼風格規範。
總而言之,此專案會使您的學習過程更具互動性,並幫助您從一開始學習的時候就使用高品質的程式碼。
此專案名稱之所以也包含了 速查表(Cheatsheet) 是因為您可以隨時透過此專案中的 標準 Python 陳述式以及結構 回顧程式碼語法,也因為在此專案中的每個程式碼範例都使用了斷言來說明及教學,故您可以不用執行程式就看到函式/陳述式的預期輸出結果。
若對機器學習(Machine Learning)有興趣,可以參考專案原作者的另一個學習專案:🤖 Interactive Machine Learning Experiments
如何使用此專案儲存庫
在此專案儲存庫中的每一個 Python 腳本皆為以下結構:
python
"""串列(Lists) , , =, <=)
- 邏輯運算子 (and, or, not)
- 恆等運算子 (is, is not)
- 成員存取運算子 (in, not in)
3. 資料類型
- 數字(包含布林值)
- 字串 及相關方法
- 串列 及相關方法(包含列表構建)
- 元組
- 集合 及相關方法
- 字典
- 類型轉換
4. 流程控制
- if 陳述式
- for 陳述式 (以及 range() 函式)
- while 陳述式
- try 陳述式
- break 陳述式
- continue 陳述式
5. 函式
- 函式定義(def 以及 return 陳述式)
- 函式內變數作用範圍(global 以及 nonlocal 陳述式)
- 預設引數
- 關鍵字引數
- 任意引數串列
- 拆解引數串列( 以及 陳述式)
- Lambda 表達式 (lambda 陳述式)
- 文件字串
- 函式註釋
- 函式裝飾器
6. 類別
- 類別定義 (class 陳述式)
- 類別物件
- 物件實體
- 物件方法
- 類別及實體變數
- 繼承
- 多重繼承
7. 模組
- 模組 (import 陳述式)
- 套件
8. 錯誤和例外
- 例外處理 (try 陳述式)
- 例外引發 (raise 陳述式)
9. 檔案
- 讀取和寫入 (with 陳述式)
- 檔案物件方法
10. 附加內容
- pass 陳述式
- 生成器 (yield 陳述式)
11. 標準函式庫簡介
- 串列化 (json 函式庫)
- 檔案萬用字元 (glob 函式庫)
- 字串規則比對 (re 函式庫)
- 數學運算 (math, random, statistics 函式庫)
- 日期和時間 (datetime 函式庫)
- 資料壓縮 (zlib 函式庫)
使用此專案必備條件
安裝 Python
確認您已安裝 Python3 在您的電腦上。
您可能會想要使用標準 Python 函式庫所提供的 虛擬環境 功能在專案目錄中建立虛擬環境來佈署 Python 程式、pip 程式以及安裝所有需要的套件,藉此來避免作業系統中 Python 版本及相依性的混亂。
根據您的安裝方法,您可能可以通過以下方式執行 Python 3 直譯器:執行 python 或 python3 命令。pip 套件管理器執行方式也是如此:執行 pip 或 pip3。
您可以使用以下命令來確認 Python 版本:
bash
python --version
此專案儲存庫中的所有程式碼皆是基於 Python 3。
安裝相依性套件
透過以下命令安裝此專案需要的相依性套件:
bash
pip install -r requirements.txt
測試程式
此專案使用 pytest 測試框架來執行程式碼測試。
您可以新增以 test_ 為開頭的檔案/函式來新增測試。(例如:test_topic.py 檔案內有 def test_sub_topic() 測試函式)
請從專案根目錄下使用以下命令來執行所有測試:
bash
pytest
您也可以使用以下命令執行特定測試:
bash
pytest ./path/to/the/test_file.py
檢查程式碼
此專案使用 pylint 以及 flake8 函式庫來執行程式碼檢查。
PyLint
檢查撰寫之程式碼是否符合 PEP 8 風格規範,請執行以下命令:
bash
pylint ./src/
若此檢查工具偵測到錯誤(例如:missing-docstring),您可以使用以下命令查看特定錯誤之詳細說明:
bash
pylint --help-msg=missing-docstring
更多關於 PyLint
Flake8
檢查撰寫之程式碼是否符合 PEP 8 風格規範,請執行以下命令:
bash
flake8 . /src
若您希望得到更多詳細的輸出,您可以加上以下參數再執行此工具:
bash
flake8 . /src --statistics --show-source --count
更多關於 Flake8
支持此專案
您可以透過 ❤️️ GitHub 或 ❤️️ Patreon 支持原作者專案