<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          你寫的Python代碼規(guī)范嗎?

          共 4249字,需瀏覽 9分鐘

           ·

          2021-05-07 03:07

          點擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書籍”即可獲贈Python從入門到進(jìn)階共10本電子書

          潮平兩岸闊,風(fēng)正一帆懸。
          總第141篇/張俊紅

          1.什么是PEP8

          PEP 是 Python Enhancement Proposals 的縮寫,直譯過來就是「Python增強建議書」也可叫做「Python改進(jìn)建議書」,說的直白點就是Python相關(guān)的一些文檔,主要用來傳遞某些信息,這些信息包括某個通知亦或是某個新的規(guī)范。關(guān)于更深層次的概念,大家有興趣的可以自行去了解。

          PEP 后面的數(shù)字從0開始一直累加,不同的數(shù)字代表不同的文檔,我們今天介紹的是 PEP8,這個文檔主要是用來規(guī)范 Python 代碼的寫法。

          2.常用的標(biāo)準(zhǔn)

          PEP8 里面有很多規(guī)范,作為一個業(yè)余程序員主要分享以下一些比較常用的規(guī)范。

          2.1縮進(jìn)

          我們知道在寫 if條件、for循環(huán)、while循環(huán)、函數(shù)等語句時都是需要縮進(jìn)的,正常來說縮進(jìn)只要有縮進(jìn)空格就行,具體縮進(jìn)幾個都行,所謂的無規(guī)矩不成方圓,想象一下,你習(xí)慣縮進(jìn)3個,我習(xí)慣縮進(jìn)5個,彼此交換代碼的時候,那代碼看起來是有多亂。為了避免這種局面的出現(xiàn),PEP8 就建議縮進(jìn)統(tǒng)一用4個空格。

          # 建議這樣
          if a > b:
              print("a is max")


          # 不建議這樣
          if a > b:
           print("a is max")

          還有盡量不要使用 Tab 鍵代替空格。

          2.2最長字符

          Python中一行的字符數(shù)限制為79個,但是有的時候會超過79,這個時候我們就需要進(jìn)行換行,在換行的時候優(yōu)先使用小括號,中括號以及大括號中的隱式續(xù)行方式,而不是使用反斜杠進(jìn)行續(xù)行。比如下面的運算符遇上換行符中的例子。

          當(dāng)我們使用括號進(jìn)行續(xù)行時,就涉及到不同行與行的對齊情況。

          在多行結(jié)構(gòu)中右括號可以與內(nèi)容對齊單獨起一行作為最后一行的第一個字符。

          my_list = [
              1,2,3,
              4,5,6
              ]

          或者也可以與多行結(jié)構(gòu)的第一行第一個字符對齊。

          my_list = [
              1,2,3,
              4,5,6
          ]

          2.3運算符遇上換行

          有的時候多個變量名進(jìn)行運算,在一行放不下時,這個時候就需要換行,那么當(dāng)運算符遇上換行時我們該怎么換呢?建議在運算符的前面進(jìn)行換行。

          # 建議這樣
          income = (income1 
                    + income2
                    - cost1
                    - cost2)


          # 不建議這樣
          income = (income1 + 
                    income2 - 
                    cost1 - 
                    cost2) 

          2.4空白行

          函數(shù)和類的定義,前后用兩個空行隔開,這個就類似于我們在 word 里面編寫文檔,段前段后留空行。

          在前面的舉例中,建議這樣和不建議這樣就可以當(dāng)作兩個函數(shù),這些函數(shù)之間是留兩空白行。

          2.5空格

          合適的空格會增加可閱讀性,比如英文和中文之間要留有一個空格,這樣看起來會相對比較舒服。在 Python 代碼中亦是如此。但是空格不可濫用。

          建議在二元運算符兩邊加一個空格:如賦值(=),增量賦值(+=,-=),比較(==,<,>,!=,<>,<=,>=,in,not,in,is,is not),布爾(and, or, not)。

          # 建議這樣
          a = 1
          a = 1+2
          a > b


          # 不建議這樣
          a=1
          a=1+2
          a>b

          但是不建議在小括號,中括號或者大括號之后;逗號、分號或者冒號之前添加空格。

          # 建議這樣
          np.array([1,2,3])

          # 不建議這樣
          np.array[1,2,3] )
          np.array([1 ,2 ,3])

          在給某個函數(shù)參數(shù)傳入?yún)?shù)值時,不建議使用空格。

          # 建議這樣
          plt.label(label="test_title")

          # 不建議這樣
          plt.label(label = "test_title")

          2.6注釋

          代碼注釋可以幫助我們很快的理清代碼,但是前提是注釋寫的夠好夠清晰,要不然不僅不會起到幫助的作用,反而會擾亂視線。關(guān)于注釋主要有如下規(guī)則:

          注釋應(yīng)該是完整一句話,如果一個注釋是一個短語或簡短的一句話,第一個單詞應(yīng)該大寫。

          如果注釋很短,結(jié)尾的句號可以省略。塊注釋一般由完整句子的一個或多個段落組成。并且每句話結(jié)束都有個句號。

          行內(nèi)注釋是與代碼寫在同一行的注釋,行內(nèi)注釋要和代碼保留至少兩個空格分隔。注釋由#和一個空格開始。

          x = max(a,b)  # select big one

          2.7模塊導(dǎo)入

          我們知道 Python 中有很多現(xiàn)成的模塊可以供我們使用,在使用之前我們需要對模塊進(jìn)行導(dǎo)入,導(dǎo)入模塊的時候我們也需要遵循相應(yīng)的規(guī)則。

          同時導(dǎo)入多個庫的時候,建議分開不同的行進(jìn)行導(dǎo)入。

          # 建議這樣
          import pandas
          import numpy


          # 不建議這樣
          import pandas,numpy

          且導(dǎo)入模塊的代碼總是位于代碼的最開始部分,在模塊注釋和文檔字符串之后,在模塊的全局變量與常量之前。

          2.8命名規(guī)范

          在 Python 里面會涉及到很多名字,模塊名、變量名、函數(shù)名、類名。這就和我們?nèi)嗣忠粯樱际怯幸欢ㄖv究的。

          不要以 Python 中的關(guān)鍵字作為變量名,比如 sum、def、list 等。

          不要使用字母‘l’(小寫的L),‘O’(大寫的O),或者‘I’(大寫的I)作為單字符變量名。
          在有些字體里,這些字符無法和數(shù)字0和1區(qū)分,如果想用‘l’,用‘L’代替。

          函數(shù)名應(yīng)該小寫,如果想提高可讀性可以用下劃線分隔。

          3.在Jupyter_notebook使用

          上面講了幾種規(guī)范,我們可以嚴(yán)格按照上面的規(guī)范去寫代碼,按照規(guī)范去做,總覺得會有種束縛,不太舒服,可是不按照規(guī)范去寫,寫出來的代碼確實不太美觀有不易讀,那可怎么辦呢?有沒有一種工具可以幫助我們把不規(guī)范的代碼直接更改成 PEP8 的規(guī)范呢?答案是有,那就是 Autopep8 模塊。

          首先我們需要去安裝一下這個模塊,使用如下命令:

          pip install Autopep8

          安裝好 Autopep8 模塊以后我們還需要安裝一個 jupyter_contrib_nbextensions 的插件,這個插件是 jupyter_notebook 中的一個插件,關(guān)于這個插件的安裝在我前面的文章寫過為jupyter_notebook增加目錄Jupyter_notebook中用的都是這一個插件。

          安裝好插件以后,我們來到 Nbextensions 部分,然后把 Autopep8 打勾。這個時候就可以在 Jupyter_notebook 中使用 PEP8 規(guī)范了。

          那具體該怎么用呢?選中你要規(guī)范化的代碼,然后點擊菜單欄中的「小錘子」,即可完成代碼規(guī)范,就是這么簡單。

          先看個空格

          # 規(guī)范前
          a=1+2
          ---
          # 規(guī)范后
          a = 1+2

          再看個縮進(jìn)

          # 規(guī)范前
          def test_pep():
             print("this is test")
          ---
          # 規(guī)范后
          def test_pep():
              print("this is test")

          PEP8 官網(wǎng):
          https://www.python.org/dev/peps/pep-0008/

          PEP8 中文文檔:
          https://blog.csdn.net/ratsniper/article/details/78954852

           想要學(xué)習(xí)更多網(wǎng)絡(luò)爬蟲知識,請點擊閱讀原文前往爬蟲網(wǎng)站。

          ------------------- End -------------------

          往期精彩文章推薦:

          歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請在后臺回復(fù)【入群

          萬水千山總是情,點個【在看】行不行

          /今日留言主題/

          隨便說一兩句吧~

          瀏覽 32
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩一区二区黄片视频在线看 | 看一级a片 | 久久草在线播放 | 黄色口逼视频网站 | 草逼视频免费看 |