首頁>Club>
11
回覆列表
  • 1 # 使用者883888263229

    pycharm+ipython(現在叫jupyter notebook了) 能完美解決這個問題。功能甚至比matlab更強大。

    作為曾經的matlab重度使用者,轉到Python之後一直不適應,斷點什麼的實在是太麻煩了。。。matlab的workspace記住所有中間變數,一旦出錯隨時呼叫中間變數檢視debug方便的多。

    pycharm也能有同樣的功能,先安裝玩pycharm,然後安裝jupyter notebook。 這時候pycharm裡面的python console自動就會被替換成ipython 的console。

    執行python 程式時,不要用選單欄裡的run,在當前的console 下面敲入

    run 你的python 檔名

    執行debug的小指令碼,比如視覺化幾個變數之類的小指令碼時可以用

    run -i 你的python 檔名

    -i的意思是 原始檔就在當前IPython的名字空間下執行而不是在一個新的名字空間中 , 也就是和MATLAB一樣當成指令碼執行。 這時就能直接呼叫workspace裡面的變量了。

    結果如圖:

    右邊欄就是全部的變數,和MATLAB的workspace類似。對面向物件的支援比matlab還好。

    MATLAB裡面的ans 和 Python console 裡的 _ 對應。

    上下箭頭同樣是檢視歷史命令。

    另外,console也支援自動補全。同時因為變數的型別已經知道,自動補全的結果比在editor裡面寫程式碼時要準確得多。

    ————————

    2017年10月29號更新:

    補充幾個pycharm自己常用的看變數思路。

    設定斷點之後debug執行,程式執行到斷點掛起,這時選擇console視窗旁邊的show python prompt可以直接在ipython裡面看變數,執行指令碼,什麼的

    2. 斷點可以設條件,這樣就不用辛苦的在程式碼裡面加判斷語句了

    ————————

    2018年7月17號更新:

    3. 旁邊的Debugger那裡可以設定變數檢視那個名稱空間中的變數:

    此時再在右側的console那裡點python prompt, 可以訪問到的變數也會跟著變。

    比如上圖狀態下的toaru_val 的值是:

    切換 當前名稱空間到<module>,demonstration.py 這裡:

    之後toaru_val 的值就變成demonstration.py 這個module裡面的值了:

    對於特別多層函式和類反覆巢狀的複雜程式碼,這樣的debug方式有奇效。

  • 中秋節和大豐收的關聯?
  • 大小麥哲倫星系相對位置?