你們好,今天我又來給你們更新 PyCharm 的使用技巧。html
從今年3月24號開始一直到7月22號,將近四個月的時間。一共更新了6篇文章,每篇 5 個小技巧,總計 30 個。python
這30個使用技巧,所有是我本身在使用 PyCharm 中認爲比較有用的,抽取出來分享給你們,有一些雖然只是一個小小的配置,可是配置好了,在使用過程卻能節省很多的時間。正則表達式
這是本系列的第六篇文章,同時也是最後一篇文章。不知道正在看這篇文章的你,看了這個系列後,是否會有一點幫助?如有,那我花時間整理的這些就真的值了。shell
照例,若是你還未看過其餘五篇,能夠點此進行查看。編程
每週分享五個 PyCharm 使用技巧(一)
每週分享五個 PyCharm 使用技巧(二)
每週分享五個 PyCharm 使用技巧(三)
每週分享五個 PyCharm 使用技巧(四)
每週分享五個 PyCharm 使用技巧(五)
每週分享五個 PyCharm 使用技巧(六)框架
假如咱們在一個爬蟲的項目中,會使用到 正則表達式 來匹配咱們想要抓取的內容。正則這種東西,有幾我的可以一步到位的呢,一般都須要通過不少次的調試才能按預期匹配。在咱們改了一次正則後,運行了下,須要從新向網站抓取請求,才能發現沒有匹配上,而後又改了一版,再次運行一樣須要發起請求,結果仍是發現仍是沒有匹配上,每每複復,正則很差的同窗可能要進行幾十次的嘗試。函數
(上面這個例子可能不太貼切,畢竟是有不少種方法實現不用從新發請求,只是列舉了一種很笨拙且低效的調試過程,你看看就行了)單元測試
而咱們在這幾十次的調試中,向同一網站發起請求都是沒有意義的重複工做。若是在 Pycharm 中能夠像 IPython Shell 和 Jupyter Notebook 那樣,能夠記住運行後全部的變量信息,那咱們就能夠在打了斷點後,能夠在不須要從新運行項目或腳本,就能夠經過執行命令表達式,來調整咱們的代碼,進行咱們的正則調試。學習
答案固然是有。測試
假如我在調試以下幾行簡單的代碼。在第 3 行處打了個斷點。而後點擊圖示位置 Show Python Prompt
按鈕。
就進入了 Python Shell
的界面,這個Shell 環境和咱們當前運行的程序環境是打通的,變量之間能夠互相訪問,這下你能夠輕鬆地進行調試了。
上面咱們打了個斷點,是爲了方便說明這個效果。並非說必定要打斷點。若是不打斷點,在腳本執行完成後,也仍然能夠在這個界面查看並操做全部變量。
如今咱們已經能夠知足咱們的調試的需求,可是每次運行腳本,都要手動點擊 Show Python Prompt
,有點麻煩。嗯?其實這個有地方能夠設置默認打開的。這個開關還比較隱祕,通常人還真發現不了。
你須要點擊圖示位置 Edit Configurations
處。
而後在這裏打勾選中。
設置上以後,以後你每次運行後腳本後,都會默認爲你存儲全部變量的值,併爲你打開 console 命令行調試界面。
除了上面這種方法,其實還有一種方法能夠在調試過程當中,執行命令表達式,而這種你們可能比較熟悉了,這邊也提一下,就當是彙總一下。可是從功能上來講,是沒有上面這種方法來得方便易用的。由於這種方法,必需要求你使用 debug 模式運行項目,並打斷點。
使用方法就是,在你打了斷點後,在圖示位置處,點擊右鍵使用 Evaluate Expression
就彈出了一個 Evaluate Expression
窗口,這裏 能夠運行命令表達式,直接操做變量。
你在 Pycharm 運行你的項目,一般是怎麼執行的?個人作法是,右鍵,而後點擊 Run
,或者使用快捷鍵 Shift + F10
。
有時候,在運行/調試腳本的時候,咱們須要指定一些參數,這在命令行中,直接指定便可。
假設在命令行中,運行腳本的命令是這樣
python main.py init --local
對於剛使用 Pycharm 的同窗,可能並不知道 Pycharm 也是能夠指定參數的。點擊下圖位置
進入設置面板,在 Script parameters
中填入參數便可。
同時在上圖的底部,你能夠看到,這裏能夠很方便的切換 解釋器,比你跑到這邊來要容易得多吧
接下來,介紹一個,我看框架源碼的時的一個小技巧,可能只適用一小部分人吧。
我平時會看的框架是 OpenStack ,我不知道其餘框架是怎樣的,但在 OpenStack 裏面帶有大量(真的不少)的單元測試文件。這給我在使用 Find in Path
時帶來了不小的困擾,你能夠從下圖的搜索結果中感覺一下,搜索一個函數,test 文件裏的結果比 正常文件要多不少。
這些測試文件的搜索結果,對於咱們看源代碼不只沒有任何幫助的,更重要的是還干擾視線。因而我就研究了一下,從文件名入手,只要在 File mask
裏填寫 !test*
能夠將這些test文件過濾掉。搜索結果一會兒清晰不少。
原本沒有想寫這個的,可是知乎上有一位朋友有這個需求,那我研究了下。
先來講下這個燈泡提示是什麼,有什麼用?
當咱們在代碼裏面有語法錯誤,或者代碼編寫不符合 pep8 代碼規範時,鼠標選擇有問題的代碼,就會自動彈出小燈泡,這個燈泡是有顏色之分的,若是是紅燈泡,通常都是語法問題,若是不處理會影響代碼運行。而若是是黃燈泡,就只是一個提示,提示你代碼不規範等,並不會影響程序的運行。
雖然這個燈泡,是出於善意之舉,但我認爲它確實有點多餘(多是我我的沒有使用它的習慣),要是語法錯誤會有紅色波浪線提示。你可能會說燈泡不只起到提示的做用,它還能夠自動糾正代碼,我我的感受並無人工校訂來得效率,來得精準。
基於有時還會像知乎上這個朋友說的這樣,會擋住咱們的代碼,會常常誤點,這確實也是一個煩惱。
我研究了下,Pycharm (2018版本)裏是有開關按鈕的,將下圖中的這個選項(Show intention bulb
)取消勾選,就能夠關閉這個功能。
下面我先給出了一小段代碼示例,思考一下,爲何name,my_name 不會有波浪線,而 myname 和 wangbm 會有波浪線呢?
Pycharm 自己會實時地對變量名進行檢查,若是變量名不是一個已存在的英文單詞,就會出現一條波浪線,當一個變量裏有多個單詞時,Python 推薦的寫法是用下劃線來分隔(其餘語言可能會習慣使用駝峯式命名法
,但 Python 是使用下劃線),因此在 Pycharm 看來 my_name 是規範的,而 myname 會被當成是一個單詞對待,因爲它在單詞庫裏並無它,因此 myname 是不規範的。
每一個人的變量命名習慣不同,如何你在項目裏大量使用了 myname 這種風格的變量命名方法,像下面這樣(隨便找了一段 cloudinit 的代碼),是讓人挺不舒服的,總有一種代碼有 bug 的錯覺。
那麼如何關閉這個非語法級別的波浪線呢?很簡單,它的開關就在你的右下角那個像 人頭像 同樣的按鈕
而後選擇 Syntax
級別的便可。一樣一段代碼,效果以下,乾淨了不少。
本系列 30 個 PyCharm 小技巧所有更新完畢了,你能夠點擊頂部的超連接進行學習。
但願對你掌握和配置 PyCharm 會有幫助,想繼續看文章的朋友,也能夠關注個人公衆號「Python編程時光」,全部的文章都會在那裏首發,公衆號裏的文章我都通過精心的排版,閱讀體驗好。歡迎你們來訂閱。