<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

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

    共 4249字,需瀏覽 9分鐘

     ·

    2021-05-07 03:07

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

    回復“書籍”即可獲贈Python從入門到進階共10本電子書

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

    1.什么是PEP8

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

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

    2.常用的標準

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

    2.1縮進

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

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


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

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

    2.2最長字符

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

    當我們使用括號進行續(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運算符遇上換行

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

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


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

    2.4空白行

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

    在前面的舉例中,建議這樣和不建議這樣就可以當作兩個函數(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ī)則:

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

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

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

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

    2.7模塊導入

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

    同時導入多個庫的時候,建議分開不同的行進行導入。

    # 建議這樣
    import pandas
    import numpy


    # 不建議這樣
    import pandas,numpy

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

    2.8命名規(guī)范

    在 Python 里面會涉及到很多名字,模塊名、變量名、函數(shù)名、類名。這就和我們?nèi)嗣忠粯?,都是有一定講究的。

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

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

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

    3.在Jupyter_notebook使用

    上面講了幾種規(guī)范,我們可以嚴格按照上面的規(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

    再看個縮進

    # 規(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

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

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

    往期精彩文章推薦:

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

    想加入Python學習群請在后臺回復【入群

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

    /今日留言主題/

    隨便說一兩句吧~

    瀏覽 32
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

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

    手機掃一掃分享

    分享
    舉報

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    黑人巨大マラvs北条麻妃 | 91视频人妻 | 高清无码在线观看18 | 水蜜桃无码观看 | 黄片在线免费看在线 |