使用Pycharm進行Python調試

1. 介紹

隨著Python語言的不斷發展,很多開發者已經開始使用Pycharm進行集成開發環境的構建。Pycharm具有許多有用的功能,其中最有用的就是Python調試器。

如果你對Python編程感興趣,那麼使用Pycharm的Python調試器將對你的編程技能提升非常有幫助。在這篇文章中,我們將學習使用Pycharm進行Python調試的技巧和知識。

2. 正文

2.1 Pycharm Python調試器的基礎知識

Pycharm的Python調試器允許你檢測代碼的錯誤和缺陷,以幫助你解決各種問題。Python調試器為開發者提供了非常強大的工具,包括運行代碼的過程中停止代碼,查看代碼的運行狀態和變數值,查看函數調用棧,以及調試複雜的運算表達式等。

def fibonacci(n):
    if n<=1:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)
    
print(fibonacci(10))
print(fibonacci(15))
print(fibonacci(20))

當你在運行上面的代碼時,你可能會詢問,函數`fibonacci()`在計算什麼?每一次調用遞歸,它都在計算什麼?可以使用Pycharm的Python調試器來檢測它。

2.2 在Pycharm中設置斷點

要開始使用Pycharm調試器,你需要設置一個斷點。你可以把斷點設置在你想要的任何地方,例如,在想要檢查的代碼行上面。

對於上面的代碼`fibonacci()`,你可以設置一個斷點,例如設置在第4行:

def fibonacci(n):
    if n<=1:
        return n   # 第4行:設置斷點
    else:
        return fibonacci(n-1) + fibonacci(n-2)
    
print(fibonacci(10))
print(fibonacci(15))
print(fibonacci(20))

2.3 在Pycharm中啟動調試

設置好斷點後,可以使用調試模式下開始執行Python程序。在Pycharm的菜單欄中,選擇【Run】->【Debug】來啟動調試。

在這裡,你可以看到程序在`fibonacci()`函數的第4行已經停止了。Pycharm提供了許多調試工具,比如打開【Variables】窗口,可以看到程序運行過程中變數的值,以及函數調用棧等信息。

2.4 調試複雜的演算法

對於複雜的演算法,例如查找素數的演算法,你可以使用Pycharm調試工具來檢查代碼運行的過程,以及代碼中間值的結果。

def is_prime(n):
    if n == 1:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

max = 100
for n in range(2, max):
    if is_prime(n):
        print(n)

在這裡,你可以檢查每一個變數在函數運行過程中的值,以及找出代碼中隱藏的錯誤。

2.5 在Pycharm中設置單元測試

除了使用調試器來調試你的Python代碼,你還可以使用單元測試來檢測代碼錯誤和缺陷。Pycharm支持多種編寫單元測試的方式,例如在命令行就能編寫的unittest框架、Pytest和Nosetest等。

要開始編寫單元測試,首先,你需要創建一個Pycharm測試文件夾。可以通過在項目文件夾調用右鍵菜單,創建一個Python包來生成測試文件。

在這裡,你可以編寫並執行各種測試,以確保你的代碼質量和邏輯性。在進行單元測試時,可以使用Pycharm中的自動化測試工具,以方便之後的可重複測試。

2.6 Pycharm調試技巧

Pycharm的調試器不僅提供了強大的調試工具,還有許多調試技巧。

  • 在【View】->【Tool Windows】 ->【Debug】中開啟Debug窗口。Debug窗口是Pycharm的調試器特有的工具,可以使你更細緻地查看代碼的運行。可以調用變數、列印調用棧以及設置斷點。
  • 在代碼中點擊左側的圓點可以為該行設置斷點。
  • 在調試過程中時,可以使用以下快捷鍵:
    • F8:單步執行
    • F7:一步步進入函數
    • Shift+F7:強制「步入」當前代碼行。
    • Shift+F8:不進入當前函數體內,直接進入當前函數的下一行
    • Alt+Shift+F8:計算選擇表達式
  • 調試過程中,可以使用Pycharm工具欄中的工具來查看變數的值和內存使用情況等。

3. 小標題

3.1 設置斷點

設置斷點是調試的第一步。可以打開調試控制台,在行號位置點擊,設置斷點。也可以使用滑鼠選中需要斷點的行,按下快捷鍵 Ctrl+F8 實現快捷斷點。

3.2 監視變數

監視變數幫助我們在程序運行時查看變數的值。可以單擊要檢查的變數行,右擊菜單選擇「Add to Watches」把變數加入監視,在可添加一個表達式變數。

3.3 斷點控制操作

使用快捷鍵可以對斷點進行控制:

  • F8 跳過斷點;
  • F7 進入函數;
  • Shift+F7:智能步入;
  • Shift+F8:跳出方法;

4. 代碼示例

下面是一個Pycharm實現二元組計數的示例:

from collections import defaultdict

def snow_array(arr: list, K: int) -> int:
    cnt = defaultdict(int)
    ans = 0
    presum = 0

    for num in arr:
        presum += num
        mod = presum % K
        ans += cnt[mod]
        if mod == 0:
            ans += 1
        cnt[mod] += 1

    return ans

if __name__ == '__main__':
    arr = [1, 2, 3, 4, 1, 6]
    k = 100
    print(snow_array(arr, k))

5. 結論

在本文中,我們學習了使用Pycharm進行Python調試的基礎知識和高級技巧。Python調試器為開發人員提供了一個強大的工具,可以檢測代碼中的錯誤和缺陷,並找出隱藏的缺陷。此外,我們還介紹了單元測試的概念和如何使用它來測試Python代碼。

在日常的開發過程中,熟練掌握Pycharm的Python調試器能夠大大提高調試程序的效率和準確性,使你的程序在Python編程領域中脫穎而出。

原創文章,作者:XWSE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147467.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XWSE的頭像XWSE
上一篇 2024-11-01 14:09
下一篇 2024-11-01 14:09

相關推薦

  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • 如何在PyCharm中安裝OpenCV?

    本文將從以下幾個方面詳細介紹如何在PyCharm中安裝OpenCV。 一、安裝Python 在安裝OpenCV之前,請確保已經安裝了Python。 如果您還沒有安裝Python,可…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論