Python官方提供了一個Python集成開發環境(IDE): IDLE (Integrated Development and Learning Environment)。
它提供了一個圖形用戶界面,可以讓開發者編寫、調試和執行Python程序。IDLE包含Python解釋器、代碼編輯器、調試器和文件瀏覽器等工具。IDLE 非常適合初學者和小規模項目的開發。
在安裝完Python之后, IDLE 也就默認安裝了, 可以在“開始”菜單中找到。

啟動之后的界面如下:

可以看到,IDLE 的功能相對簡單,如果要開發大型項目, 可以考慮使用VS Code。
## VS Code 開發Python之步驟
1. 安裝Python
Python目前的最新版本是3.11.5, 可以到如下地址下載:
[https://www.python.org/ftp/python/3.11.5/python-3.11.5-amd64.exe](https://www.python.org/ftp/python/3.11.5/python-3.11.5-amd64.exe)
下載后, 雙擊點擊安裝就可以了。
2. 安裝VS Code 的Python插件
打開VS Code之后,在插件搜索 Python

點擊 “Install” 進行安裝。
3. 開始編程
VS Code 的Python插件,對Python語言提供了豐富的支持(適用于該語言的所有受支持版本:>=3.7),包括IntelliSense(Pylance)、linting、調試、代碼導航、代碼格式化、重構、變量資源管理器、測試資源管理器等功能。
## Pylance
Python 擴展將自動安裝 Pylance 擴展, 也可以卸載。
IntelliSense 是很多 IDEs(集成開發環境)和代碼編輯器(如 Visual Studio Code)內置的一種代碼自動完成和提示的特性。通過使用 IntelliSense,開發者不需要記住庫和API的所有細節,也能提高代碼編寫的速度和準確性。
特別的,Pylance 是 Visual Studio Code 中的一個 Python 語言服務插件,提供了快速、高效的語法分析和語義分析,為 Python 開發者帶來豐富的 IntelliSense 功能,包括:
- 自動完成:當你輸入代碼時,Pylance 可以提供函數、方法、變量、關鍵字等的自動完成列表。
- 實時錯誤檢查:Pylance 可以高亮顯示語法錯誤和潛在問題,甚至在你運行代碼之前。
- 類型推斷:Pylance 能夠推斷 Python 代碼中變量的類型,提供更準確的代碼提示。
- 函數簽名提示:當你調用一個函數或方法時,Pylance 可以顯示這個函數或方法的簽名(包含參數名和類型)。
- 代碼格式化:你可以使用 Pylance 來自動格式化你的代碼,保持代碼風格的一致性。
- 導入模塊時的自動完成和導航到定義:Pylance 可以在你導入模塊時提供自動完成,并且可以直觀地跳轉到符號的定義。
Pylance 和 Visual Studio Code 配合使用,可以對 Python 代碼提供強大的 IntelliSense 支持,幫助提升 Python 開發的效率。
## Linting
Linting 是一種對源代碼進行靜態分析的方法,它主要用于查找潛在的錯誤、不符合編碼規范的代碼以及其他可能的問題。
Linting 工具(也稱為 "linter")通常會檢測以下幾類問題:
- **語法錯誤**:這可能是程序員在編程時不小心產生的錯誤,如括號沒有配對、缺失必需的分隔符等。
- **代碼風格不一致**:包括縮進不正確、變量命名不規范、多余的空格等。正確的代碼風格可以使你的代碼更易讀、更易維護。
- **潛在的邏輯錯誤**:例如,賦值操作 (`=`) 被錯誤地寫成了比較操作 (`==`)。
- **未使用的變量或函數**:這些未使用的代碼可能會使人困惑,且占用額外的空間。
各種編程語言都有對應的常用的 linting 工具,例如對于 JavaScript,有 ESLint 和 JSHint;對于 Python,有 pylint 和 flake8;對于 C 或 C++,有 cpplint 和 clang-tidy。
Linting 通常會集成到 IDEs 或編輯器中,如 Visual Studio Code、Sublime Text、Atom 等,它們會在你寫代碼時實時進行 linting 并立即反饋問題,也可以在代碼提交前作為持續集成(CI)流程的一部分進行 linting,以確保所有提交的代碼符合預期的質量標準。
## Debugging
Debugging 是一個在軟件開發中查找和修復程序錯誤或缺陷(通常稱為 "bug")的過程。這個過程通常涉及識別問題存在的位置(或說出現了什么問題),然后嘗試理解為什么會出現這個問題,并找出解決辦法。
常用的調試工具和技術包括:
1. **斷點(Breakpoints)**:斷點允許程序在特定的位置暫停執行,然后可以檢查此時程序的狀態和變量的值。這是一種很直觀和有效的調試手段。
2. **單步運行(Stepping)**:單步運行允許你逐行或逐語句執行程序,可以更清楚地看到每一步操作后程序的變化。
3. **日志(Logging)**:日志是在程序運行過程中收集和記錄信息的方法。這些信息可以包括程序執行的進度、用戶的操作、錯誤信息等。
4. **監控變量(Variable watch)**:一些調試工具允許你 "監控" 一個或多個變量的值,當這個變量的值改變時,調試工具會提示你。
5. **異常處理**:你可以設置調試工具在遇到特定的異常或錯誤時暫停程序,然后查看引發異常的代碼位置和背景情況。
很多 IDE(集成開發環境)和代碼編輯器(如 Visual Studio Code、Eclipse、PyCharm 等)都內置了強大的調試工具,支持上述的各種調試功能。此外,一些編程語言也提供了命令行調試工具,例如 Python 的 pdb 或 Node.js 的 debugger。
## code navigation - 代碼導航
代碼導航指的是在源代碼中快速定位和移動的能力,這是集成開發環境(IDE)和文本編輯器中的一個重要特性,用以提高編程效率。以下是一些常見的代碼導航功能:
1. **跳轉到定義**:這個功能可以直接跳轉到一個變量、函數或類的定義處。
2. **查找引用/引用視圖**:這個功能列出所有對特定變量、函數或類的引用。
3. **文件導航**:通過文件名快速打開文件,或在打開的文件中切換。
4. **符號導航**:在當前文件或整個工程中按符號名(例如函數名或變量名)快速跳轉。
5. **代碼折疊/展開**:隱藏或顯示代碼塊,使整個代碼更簡潔,更容易理解。
6. **行號導航**:輸入行號并轉至特定行。
7. **導航歷史**:返回到前面查看過的代碼位置或向前前進到后面瀏覽過的位置。
8. **面包屑導航**:在頂部顯示當前位置的路徑,可以點擊路徑中的任何級別到達對應的位置。
9. **大綱視圖**:顯示文件或工程的結構視圖,如所有的類、方法和變量等。
這些代碼導航功能在大多數現代IDE和代碼編輯器中,如 Visual Studio Code、IntelliJ IDEA、Eclipse、Atom 和 Sublime Text 等,都有提供。這些功能對于理解、修改和維護大型代碼庫尤其有用。
## code formatting - 代碼格式化
代碼格式化是一種改變源代碼格式以提高可讀性和一致性的過程。這個過程通常會調整如下一些方面:
1. **縮進**:代碼縮進對于區分代碼塊和保持代碼可讀性非常重要。例如,一些編程語言(如 Python)規定必須使用一致的縮進。
2. **行長度**:一行代碼的長度通常也會有限制,防止一行代碼過長。
3. **空格和換行**:在運算符、聲明、函數參數等之間添加適當的空格和換行,以提高代碼的可讀性。
4. **大括號位置**:在一些編程語言(如 JavaScript 或 C++)中,大括號 `{}` 的位置和樣式(比如,是否在新的一行打開大括號,或是與上一行的語句在同一行打開等)也會被規定。
5. **聲明排序**:有時候,我們會對變量、函數、類申明的順序進行排序,使得代碼更有邏輯性和可預測性。
6. **移除無效代碼**:此過程可以移除一些無效的空格、未被使用的變量和函數,以及其他冗余的代碼片段。
很多 IDE 和代碼編輯器(如 Visual Studio Code、IntelliJ IDEA、Eclipse 等)都內置了代碼格式化的工具,通常只需一鍵(或者自動)格式化。此外,還有一些可以單獨使用的格式化工具,如 Prettier(主要用于 JavaScript)和 Black(用于 Python)。這些工具可以被集成到構建或提交代碼的流程中,以確保所有的代碼都是格式化過的。
## refactoring - 重構
重構(Refactoring)是一種軟件開發過程,目標是改進代碼的內部結構,但不改變其外部行為。簡單來說,經過重構的代碼應該可以更好地被理解、被修改和被維護,但其功能和行為都沒有改變。
重構可以涉及到以下幾種操作:
- **代碼清理**:移除未使用的變量和函數,簡化復雜的表達式和調用。
- **重命名變量和函數**:使用更易理解的名稱以提高代碼的可讀性。
- **抽取代碼**:把長的函數或復雜的代碼塊分解為更小且更簡單的函數。
- **移動代碼**:將代碼塊移動到它更合適的位置,如將一個函數從一個類移動到另一個類。
- **改進數據結構**:優化數據結構,例如將基本類型替換為類或對象,以改善抽象。
在進行重構時,重要的是要確保你有一套可靠的測試集,這樣你可以在每次重構后都運行測試以確保你沒有改變任何功能。許多IDE(如 IntelliJ IDEA 和 Visual Studio Code)都提供了強大的重構工具,在保證重構安全和準確的同時提高重構效率。
至于何時進行重構以及何時停止重構,常引用 Martin Fowler 的觀點:你應該在看到可以改進的代碼時就進行一小部分的重構,并且持續進行這樣的改進。重構是一個持續且循序漸進的過程,而不是一次性的大改動。
## variable explorer - 變量資源管理器
變量瀏覽器(Variable Explorer)是一種編程工具,主要用于查看、管理和修改程序運行時的變量。在調試和數據分析過程中,這個功能可以幫助你理解和追蹤你的代碼狀態。
在變量瀏覽器中,你通常可以看到以下信息:
- **變量名**:變量的標識符。
- **類型**:變量的數據類型,如整數、浮點數、字符串、列表、字典等。
- **值**:變量的當前值。
一些高級的變量瀏覽器還會提供更多功能,例如:
- **修改變量值**:你可以直接在變量瀏覽器中修改變量的值,這對于調試和試驗特別有用。
- **數據視圖**:復雜數據結構(如列表、字典和數據框等)可能會以特定的視圖顯示,以便于理解和管理。
- **過濾和排序變量**:當你有很多變量需要管理時,過濾和排序功能可以幫助你找出你感興趣的變量。
許多集成開發環境(IDE)和代碼編輯器都提供了變量瀏覽器,例如:
- 在 Python 的Spyder IDE,變量瀏覽器是其主要功能之一,非常適合進行數據分析和科學計算。
- 在 Visual Studio Code,可以通過安裝擴展 (如 Python extension) 獲得變量瀏覽器。
- 在 RStudio(面向 R 語言的 IDE),變量瀏覽器是默認提供的功能。
## test explorer -測試資源管理器
測試瀏覽器(Test Explorer)是一種在集成開發環境(IDE)或代碼編輯器中的界面,用于運行和管理自動化的測試用例。測試瀏覽器給開發者提供一個可視化界面來運行、查看測試結果并追蹤測試覆蓋率。這對于維護代碼質量和確保代碼更改不影響已有功能非常有幫助。
具體來說,測試瀏覽器提供了以下功能:
- **運行和調試測試**:你可以選擇運行所有的測試用例,或僅運行選中的部分測試用例,或者進行調試模式運行測試。
- **查看測試結果**:你可以清楚地看到哪些測試通過了,哪些測試失敗了,以及失敗的原因。
- **管理測試配置**:為了滿足不同的測試場景,你可以配置多個測試環境并在它們之間快速切換。
- **追蹤測試覆蓋率**:一些測試瀏覽器會集成編程語言的代碼覆蓋庫來追蹤測試覆蓋率,幫助你識別沒有被測試覆蓋的代碼。
許多流行的 IDE 和代碼編輯器都提供了測試瀏覽器,例如:
- 在 Visual Studio Code 中,可以使用 Test Explorer UI 插件和對應語言的測試插件(如 Python Test Explorer for Python)。
- IntelliJ IDEA、PyCharm 等 JetBrains 的 IDE 內置了強大的測試工具。
- Eclipse 對 Java 的 JUnit 測試和其他類型的測試有良好的支持。
## VSCode.dev
VSCode.dev 是 Visual Studio Code 的一個在線版本。這是一個基于 Web 的代碼編輯器,它在瀏覽器中提供了 Visual Studio Code 的大部分功能。
這是一個強大的工具,你無需在本地安裝任何軟件或進行復雜的設置,只需打開瀏覽器并訪問 vscode.dev,就可以開始編碼。
使用 VSCode.dev,你可以:
編輯本地文件和文件夾,只需將它們拖放到瀏覽器窗口。
通過針對各種語言的高級 IntelliSense,得到代碼提示和自動補全的支持。
使用VS Code的豐富擴展生態,來獲取更多的功能和定制性。
利用同步設置功能,在不同的設備和瀏覽器之間同步你的使用習慣和設置。
然而,目前 VSCode.dev 仍然不支持運行和調試代碼,但微軟已經計劃在未來的版本中添加這個功能。
總的來說,無論你是在路上需要快速修改代碼,還是想把代碼編輯環境帶到任何你去的地方,VSCode.dev 都是一個很好的選擇。
## Jupyter
Jupyter 是一個開源的交互式計算環境,它允許你在瀏覽器中創建和共享包含實時代碼、方程式、可視化圖形和文本的文檔。這種文檔被稱為 Jupyter 筆記本。
Jupyter 支持40多種編程語言,包括 Python、JavaScript、Scala、R等。
下面是 Jupyter 提供的一些主要功能:
- **交互式編程**:你可以寫代碼,然后即刻運行看到結果,這非常適合探索性的數據分析。
- **數據可視化**:你可以創建豐富的交互式圖形,并且直接在筆記本中查看。
- **Markdown 支持**:你可以在代碼旁邊添加富文本說明,包括標題、列表、圖表、鏈接、圖像等。
- **LaTeX 公式**:你可以使用 LaTeX 語法在筆記本中插入數學公式,使得科學計算更直觀。
- **分享和導出**:你可以將筆記本分享到 GitHub,也可以導出為 HTML、PDF、Markdown 等格式。
Jupyter 是數據科學家、研究人員和教育者們最受歡迎的工具之一。它可以幫助你更好地組織代碼和思路,以及更方便地展示你的成果。
## 參考
* VS Code下載地址:[https://code.visualstudio.com/](https://code.visualstudio.com/)
* Python安裝介紹: [https://code.visualstudio.com/docs/python/python-tutorial](https://code.visualstudio.com/docs/python/python-tutorial)
*****
*****
- 前言
- 1.入門篇
- Python介紹
- 安裝與使用
- Python開發利器之VS Code
- 模塊安裝
- 命令行
- 一次Python無法安裝模塊的問題探索與解決之旅
- 命令運行
- Conda
- 下載地址
- 2.基礎篇
- 基礎語法
- 輸入與輸出
- with as的用法
- 注釋
- Python命令行參數
- 編碼
- 變量類型
- 列表遍歷
- 運算符
- 表達式語句
- 條件
- 循環
- 日期和時間
- 函數
- 高級語法
- @符號-裝飾器
- 模塊和包
- name
- init.py
- 錯誤和異常
- 面向對象
- 3.專題篇
- 常用功能
- Python 字符串連接
- python web
- Python CGI編程
- Python OAuth2
- 認證 Flask-HTTPAuth
- 常用命令
- 內置函數
- dir()
- print(f)
- 標準模塊
- sys
- pickle-數據序列化
- os
- IO(輸入輸出)
- 鍵盤輸入
- 文件讀寫
- 測試
- Python測試框架之pytest快速入門
- pytest-bdd快速示例和問題解決
- 基于pytest-bdd的項目目錄結構和命名規范
- python BDD 的相關概念
- Behave介紹和快速示例
- Python BDD之Behave測試報告
- Python BDD 框架比較之 pytest-bdd vs behave
- pytest進階
- Flask + pytest測試
- 參考網址
- pytest-bdd進階
- hehave進階
- 測試路徑
- python + selunium
- HTML 根據多層CSS 查找元素
- 等待執行
- 使用text 查找 span
- pytest如何在控制臺輸出
- 4.問題篇
- pip pip3 及區別
- TypeError: can only concatenate str (not "NoneType") to str
- 5.實戰篇
- matplotlib-繪圖包
- 導入類
- 命名規范
- 模塊查找
- 6.進階篇
- Flask
- Flask介紹
- Flask擴展模塊
- Flask-Login
- 問題
- Jinja2
- Flask-RESTful
- Flask-JWT-Extended
- WSGI
- Flask-SQLAlchemy
- 部署
- Flask VS Django
- Flask Web
- Flask + Vue
- Flask實戰
- Flask 標準目錄結構
- Blueprints
- 參考
- FastAPI 測試
- https 證書 Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate