a pycharm 标记多个_每周分享五个 PyCharm 使用技巧(二)
這是 「PyCharm 技巧分享」系列的第二篇分享。由于上一篇文章得到了大家的一些贊同,所以今天又來(lái)給大家推薦一些我平時(shí)自己有用的小技巧,大家擇需所取即可。
先聲明下,并不保證對(duì)所有的人都是有幫助的,所以請(qǐng)大神嘴下留情,覺得有用的朋友,還請(qǐng)給個(gè)贊,證明這系列有人在看,有人在看那我就有更多的動(dòng)力繼續(xù)更新,你說(shuō)是不是呢?
如果你沒看過(guò)第一篇文章,你可以點(diǎn)擊這里進(jìn)行查看:
每周分享五個(gè) PyCharm 使用技巧(一)
06. 神一樣的調(diào)試技巧
假如我們?cè)谝粋€(gè)爬蟲的項(xiàng)目中,會(huì)使用到 正則表達(dá)式 來(lái)匹配我們想要抓取的內(nèi)容。正則這種東西,有幾個(gè)人能夠一步到位的呢,通常都需要經(jīng)過(guò)很多次的調(diào)試才能按預(yù)期匹配。在我們改了一次正則后,運(yùn)行了下,需要重新向網(wǎng)站抓取請(qǐng)求,才能發(fā)現(xiàn)沒有匹配上,然后又改了一版,再次運(yùn)行同樣需要發(fā)起請(qǐng)求,結(jié)果還是發(fā)現(xiàn)還是沒有匹配上,往往復(fù)復(fù),正則不好的同學(xué)可能要進(jìn)行幾十次的嘗試。
(上面這個(gè)例子可能不太貼切,畢竟是有很多種方法實(shí)現(xiàn)不用重新發(fā)請(qǐng)求,只是列舉了一種很笨拙且低效的調(diào)試過(guò)程,你看看就好了)
而我們?cè)谶@幾十次的調(diào)試中,向同一網(wǎng)站發(fā)起請(qǐng)求都是沒有意義的重復(fù)工作。如果在 Pycharm 中可以像 IPython Shell 和 Jupyter Notebook 那樣,可以記住運(yùn)行后所有的變量信息,那我們就可以在打了斷點(diǎn)后,可以在不需要重新運(yùn)行項(xiàng)目或腳本,就可以通過(guò)執(zhí)行命令表達(dá)式,來(lái)調(diào)整我們的代碼,進(jìn)行我們的正則調(diào)試。
答案當(dāng)然是有。
假如我在調(diào)試如下幾行簡(jiǎn)單的代碼。在第 3 行處打了個(gè)斷點(diǎn)。然后點(diǎn)擊圖示位置 Show Python Prompt 按鈕。
就進(jìn)入了 Python Shell 的界面,這個(gè)Shell 環(huán)境和我們當(dāng)前運(yùn)行的程序環(huán)境是打通的,變量之間可以互相訪問(wèn),這下你可以輕松地進(jìn)行調(diào)試了。
上面我們打了個(gè)斷點(diǎn),是為了方便說(shuō)明這個(gè)效果。并不是說(shuō)一定要打斷點(diǎn)。如果不打斷點(diǎn),在腳本執(zhí)行完成后,也仍然可以在這個(gè)界面查看并操作所有變量。
現(xiàn)在我們已經(jīng)可以滿足我們的調(diào)試的需求,但是每次運(yùn)行腳本,都要手動(dòng)點(diǎn)擊 Show Python Prompt ,有點(diǎn)麻煩。嗯?其實(shí)這個(gè)有地方可以設(shè)置默認(rèn)打開的。這個(gè)開關(guān)還比較隱秘,一般人還真發(fā)現(xiàn)不了。
你需要點(diǎn)擊圖示位置 Edit Configurations 處。
然后在這里打勾選中。
設(shè)置上之后,之后你每次運(yùn)行后腳本后,都會(huì)默認(rèn)為你存儲(chǔ)所有變量的值,并為你打開 console 命令行調(diào)試界面。
除了上面這種方法,其實(shí)還有一種方法可以在調(diào)試過(guò)程中,執(zhí)行命令表達(dá)式,而這種大家可能比較熟悉了,這邊也提一下,就當(dāng)是匯總一下。但是從功能上來(lái)說(shuō),是沒有上面這種方法來(lái)得方便易用的。因?yàn)檫@種方法,必須要求你使用 debug 模式運(yùn)行項(xiàng)目,并打斷點(diǎn)。
使用方法就是,在你打了斷點(diǎn)后,在圖示位置處,點(diǎn)擊右鍵使用 Evaluate Expression
就彈出了一個(gè) Evaluate Expression 窗口,這里 可以運(yùn)行命令表達(dá)式,直接操作變量。
07. 指定參數(shù)執(zhí)行腳本
你在 Pycharm 運(yùn)行你的項(xiàng)目,通常是怎么執(zhí)行的?我的做法是,右鍵,然后點(diǎn)擊 Run,或者使用快捷鍵 Shift + F10 。
有時(shí)候,在運(yùn)行/調(diào)試腳本的時(shí)候,我們需要指定一些參數(shù),這在命令行中,直接指定即可。
假設(shè)在命令行中,運(yùn)行腳本的命令是這樣
python main.py init --local
復(fù)制代碼
對(duì)于剛使用 Pycharm 的同學(xué),可能并不知道 Pycharm 也是可以指定參數(shù)的。點(diǎn)擊下圖位置
進(jìn)入設(shè)置面板,在 Script parameters 中填入?yún)?shù)即可。
同時(shí)在上圖的底部,你可以看到,這里可以很方便的切換 解釋器,比你跑到這邊來(lái)要容易得多吧
08. 搜索時(shí)過(guò)濾測(cè)試文件
接下來(lái),介紹一個(gè),我看框架源碼的時(shí)的一個(gè)小技巧,可能只適用一小部分人吧。
我平時(shí)會(huì)看的框架是 OpenStack ,我不知道其他框架是怎樣的,但在 OpenStack 里面帶有大量(真的很多)的單元測(cè)試文件。這給我在使用 Find in Path 時(shí)帶來(lái)了不小的困擾,你可以從下圖的搜索結(jié)果中感受一下,搜索一個(gè)函數(shù),test 文件里的結(jié)果比 正常文件要多很多。
這些測(cè)試文件的搜索結(jié)果,對(duì)于我們看源代碼不僅沒有任何幫助的,更重要的是還干擾視線。于是我就研究了一下,從文件名入手,只要在 File mask 里填寫 !test* 可以將這些test文件過(guò)濾掉。搜索結(jié)果一下子清晰很多。
09. 關(guān)閉煩人的燈泡提示
本來(lái)沒有想寫這個(gè)的,但是知乎上有一位朋友有這個(gè)需求,那我研究了下。
先來(lái)說(shuō)下這個(gè)燈泡提示是什么,有什么用?
當(dāng)我們?cè)诖a里面有語(yǔ)法錯(cuò)誤,或者代碼編寫不符合 pep8 代碼規(guī)范時(shí),鼠標(biāo)選擇有問(wèn)題的代碼,就會(huì)自動(dòng)彈出小燈泡,這個(gè)燈泡是有顏色之分的,如果是紅燈泡,一般都是語(yǔ)法問(wèn)題,如果不處理會(huì)影響代碼運(yùn)行。而如果是黃燈泡,就只是一個(gè)提示,提示你代碼不規(guī)范等,并不會(huì)影響程序的運(yùn)行。
雖然這個(gè)燈泡,是出于善意之舉,但我認(rèn)為它確實(shí)有點(diǎn)多余(可能是我個(gè)人沒有使用它的習(xí)慣),要是語(yǔ)法錯(cuò)誤會(huì)有紅色波浪線提示。你可能會(huì)說(shuō)燈泡不僅起到提示的作用,它還可以自動(dòng)糾正代碼,我個(gè)人感覺并沒有人工校正來(lái)得效率,來(lái)得精準(zhǔn)。
基于有時(shí)還會(huì)像知乎上這個(gè)朋友說(shuō)的這樣,會(huì)擋住我們的代碼,會(huì)經(jīng)常誤點(diǎn),這確實(shí)也是一個(gè)煩惱。
我研究了下,Pycharm (2018版本)里是有開關(guān)按鈕的,將下圖中的這個(gè)選項(xiàng)(Show intention bulb)取消勾選,就可以關(guān)閉這個(gè)功能。
10. 關(guān)閉礙眼的波浪線
下面我先給出了一小段代碼示例,思考一下,為什么name,my_name 不會(huì)有波浪線,而 myname 和 wangbm 會(huì)有波浪線呢?
Pycharm 本身會(huì)實(shí)時(shí)地對(duì)變量名進(jìn)行檢查,如果變量名不是一個(gè)已存在的英文單詞,就會(huì)出現(xiàn)一條波浪線,當(dāng)一個(gè)變量里有多個(gè)單詞時(shí),Python 推薦的寫法是用下劃線來(lái)分隔(其他語(yǔ)言可能會(huì)習(xí)慣使用駝峰式命名法 ,但 Python 是使用下劃線),所以在 Pycharm 看來(lái) my_name 是規(guī)范的,而 myname 會(huì)被當(dāng)成是一個(gè)單詞對(duì)待,由于它在單詞庫(kù)里并沒有它,所以 myname 是不規(guī)范的。
每個(gè)人的變量命名習(xí)慣不一樣,如何你在項(xiàng)目里大量使用了 myname 這種風(fēng)格的變量命名方法,像下面這樣(隨便找了一段 cloudinit 的代碼),是讓人挺不舒服的,總有一種代碼有 bug 的錯(cuò)覺。
那么如何關(guān)閉這個(gè)非語(yǔ)法級(jí)別的波浪線呢?很簡(jiǎn)單,它的開關(guān)就在你的右下角那個(gè)像 人頭像 一樣的按鈕
然后選擇 Syntax 級(jí)別的即可。同樣一段代碼,效果如下,干凈了很多。
本周的 PyCharm 使用技巧,就是這五個(gè)了,你學(xué)會(huì)了嗎?
最后,我可以求個(gè)贊嗎? *^_^*
總結(jié)
以上是生活随笔為你收集整理的a pycharm 标记多个_每周分享五个 PyCharm 使用技巧(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python读取npy文件_python
- 下一篇: 在STM32CubeMX生成的MDK5工