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自己常用的看變數思路。
2. 斷點可以設條件,這樣就不用辛苦的在程式碼裡面加判斷語句了
2018年7月17號更新:
3. 旁邊的Debugger那裡可以設定變數檢視那個名稱空間中的變數:
此時再在右側的console那裡點python prompt, 可以訪問到的變數也會跟著變。
比如上圖狀態下的toaru_val 的值是:
切換 當前名稱空間到<module>,demonstration.py 這裡:
之後toaru_val 的值就變成demonstration.py 這個module裡面的值了:
對於特別多層函式和類反覆巢狀的複雜程式碼,這樣的debug方式有奇效。
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方式有奇效。