每週分享五個 PyCharm 使用技巧(二)

你們好,今天我又來給你們更新 PyCharm 的使用技巧。html

從今年3月24號開始一直到7月22號,將近四個月的時間。一共更新了6篇文章,每篇 5 個小技巧,總計 30 個。python

這30個使用技巧,所有是我本身在使用 PyCharm 中認爲比較有用的,抽取出來分享給你們,有一些雖然只是一個小小的配置,可是配置好了,在使用過程卻能節省很多的時間。正則表達式

這是本系列的第六篇文章,同時也是最後一篇文章。不知道正在看這篇文章的你,看了這個系列後,是否會有一點幫助?如有,那我花時間整理的這些就真的值了。shell

照例,若是你還未看過其餘五篇,能夠點此進行查看。編程

每週分享五個 PyCharm 使用技巧(一)
每週分享五個 PyCharm 使用技巧(二)
每週分享五個 PyCharm 使用技巧(三)
每週分享五個 PyCharm 使用技巧(四)
每週分享五個 PyCharm 使用技巧(五)
每週分享五個 PyCharm 使用技巧(六)框架

06. 神同樣的調試技巧

假如咱們在一個爬蟲的項目中,會使用到 正則表達式 來匹配咱們想要抓取的內容。正則這種東西,有幾我的可以一步到位的呢,一般都須要通過不少次的調試才能按預期匹配。在咱們改了一次正則後,運行了下,須要從新向網站抓取請求,才能發現沒有匹配上,而後又改了一版,再次運行一樣須要發起請求,結果仍是發現仍是沒有匹配上,每每複復,正則很差的同窗可能要進行幾十次的嘗試。函數

(上面這個例子可能不太貼切,畢竟是有不少種方法實現不用從新發請求,只是列舉了一種很笨拙且低效的調試過程,你看看就行了)單元測試

而咱們在這幾十次的調試中,向同一網站發起請求都是沒有意義的重複工做。若是在 Pycharm 中能夠像 IPython Shell 和 Jupyter Notebook 那樣,能夠記住運行後全部的變量信息,那咱們就能夠在打了斷點後,能夠在不須要從新運行項目或腳本,就能夠經過執行命令表達式,來調整咱們的代碼,進行咱們的正則調試。學習

答案固然是有。測試

假如我在調試以下幾行簡單的代碼。在第 3 行處打了個斷點。而後點擊圖示位置 Show Python Prompt 按鈕。

就進入了 Python Shell 的界面,這個Shell 環境和咱們當前運行的程序環境是打通的,變量之間能夠互相訪問,這下你能夠輕鬆地進行調試了。

上面咱們打了個斷點,是爲了方便說明這個效果。並非說必定要打斷點。若是不打斷點,在腳本執行完成後,也仍然能夠在這個界面查看並操做全部變量。

如今咱們已經能夠知足咱們的調試的需求,可是每次運行腳本,都要手動點擊 Show Python Prompt ,有點麻煩。嗯?其實這個有地方能夠設置默認打開的。這個開關還比較隱祕,通常人還真發現不了。

你須要點擊圖示位置 Edit Configurations 處。

而後在這裏打勾選中。

設置上以後,以後你每次運行後腳本後,都會默認爲你存儲全部變量的值,併爲你打開 console 命令行調試界面。

除了上面這種方法,其實還有一種方法能夠在調試過程當中,執行命令表達式,而這種你們可能比較熟悉了,這邊也提一下,就當是彙總一下。可是從功能上來講,是沒有上面這種方法來得方便易用的。由於這種方法,必需要求你使用 debug 模式運行項目,並打斷點。

使用方法就是,在你打了斷點後,在圖示位置處,點擊右鍵使用 Evaluate Expression

就彈出了一個 Evaluate Expression 窗口,這裏 能夠運行命令表達式,直接操做變量。

07. 指定參數執行腳本

你在 Pycharm 運行你的項目,一般是怎麼執行的?個人作法是,右鍵,而後點擊 Run,或者使用快捷鍵 Shift + F10

有時候,在運行/調試腳本的時候,咱們須要指定一些參數,這在命令行中,直接指定便可。

假設在命令行中,運行腳本的命令是這樣

python main.py init --local

對於剛使用 Pycharm 的同窗,可能並不知道 Pycharm 也是能夠指定參數的。點擊下圖位置

進入設置面板,在 Script parameters 中填入參數便可。

同時在上圖的底部,你能夠看到,這裏能夠很方便的切換 解釋器,比你跑到這邊來要容易得多吧

08. 搜索時過濾測試文件

接下來,介紹一個,我看框架源碼的時的一個小技巧,可能只適用一小部分人吧。

我平時會看的框架是 OpenStack ,我不知道其餘框架是怎樣的,但在 OpenStack 裏面帶有大量(真的不少)的單元測試文件。這給我在使用 Find in Path 時帶來了不小的困擾,你能夠從下圖的搜索結果中感覺一下,搜索一個函數,test 文件裏的結果比 正常文件要多不少。

這些測試文件的搜索結果,對於咱們看源代碼不只沒有任何幫助的,更重要的是還干擾視線。因而我就研究了一下,從文件名入手,只要在 File mask 裏填寫 !test* 能夠將這些test文件過濾掉。搜索結果一會兒清晰不少。

09. 關閉煩人的燈泡提示

原本沒有想寫這個的,可是知乎上有一位朋友有這個需求,那我研究了下。

先來講下這個燈泡提示是什麼,有什麼用?

當咱們在代碼裏面有語法錯誤,或者代碼編寫不符合 pep8 代碼規範時,鼠標選擇有問題的代碼,就會自動彈出小燈泡,這個燈泡是有顏色之分的,若是是紅燈泡,通常都是語法問題,若是不處理會影響代碼運行。而若是是黃燈泡,就只是一個提示,提示你代碼不規範等,並不會影響程序的運行。

雖然這個燈泡,是出於善意之舉,但我認爲它確實有點多餘(多是我我的沒有使用它的習慣),要是語法錯誤會有紅色波浪線提示。你可能會說燈泡不只起到提示的做用,它還能夠自動糾正代碼,我我的感受並無人工校訂來得效率,來得精準。

基於有時還會像知乎上這個朋友說的這樣,會擋住咱們的代碼,會常常誤點,這確實也是一個煩惱。

我研究了下,Pycharm (2018版本)裏是有開關按鈕的,將下圖中的這個選項(Show intention bulb)取消勾選,就能夠關閉這個功能。

10. 關閉礙眼的波浪線

下面我先給出了一小段代碼示例,思考一下,爲何name,my_name 不會有波浪線,而 myname 和 wangbm 會有波浪線呢?

Pycharm 自己會實時地對變量名進行檢查,若是變量名不是一個已存在的英文單詞,就會出現一條波浪線,當一個變量裏有多個單詞時,Python 推薦的寫法是用下劃線來分隔(其餘語言可能會習慣使用駝峯式命名法 ,但 Python 是使用下劃線),因此在 Pycharm 看來 my_name 是規範的,而 myname 會被當成是一個單詞對待,因爲它在單詞庫裏並無它,因此 myname 是不規範的。

每一個人的變量命名習慣不同,如何你在項目裏大量使用了 myname 這種風格的變量命名方法,像下面這樣(隨便找了一段 cloudinit 的代碼),是讓人挺不舒服的,總有一種代碼有 bug 的錯覺。

那麼如何關閉這個非語法級別的波浪線呢?很簡單,它的開關就在你的右下角那個像 人頭像 同樣的按鈕

而後選擇 Syntax 級別的便可。一樣一段代碼,效果以下,乾淨了不少。


本系列 30 個 PyCharm 小技巧所有更新完畢了,你能夠點擊頂部的超連接進行學習。

但願對你掌握和配置 PyCharm 會有幫助,想繼續看文章的朋友,也能夠關注個人公衆號「Python編程時光」,全部的文章都會在那裏首發,公衆號裏的文章我都通過精心的排版,閱讀體驗好。歡迎你們來訂閱。


關注公衆號,獲取最新干貨!

相關文章
相關標籤/搜索