<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    2.5. 代碼縮進

    Python 函數沒有明顯的 beginend,沒有標明函數的開始和結束的花括號。唯一的分隔符是一個冒號 (:),接著代碼本身是縮進的。

    例 2.5. 縮進 buildConnectionString 函數

    
    def buildConnectionString(params):
        """Build a connection string from a dictionary of parameters.
    
        Returns string."""
        return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

    代碼塊是通過它們的縮進來定義的。我所說的“代碼塊”是指:函數、if 語句、for 循環、while 循環,等等。開始縮進表示塊的開始,取消縮進表示塊的結束。不存在明顯的括號,大括號或關鍵字。這就意味著空白是重要的,并且要一致。在這個例子中,函數代碼 (包括 doc string) 縮進了 4 個空格。不一定非要是 4 個,只要一致就可以了。沒有縮進的第一行則被視為在函數體之外。

    例 2.6 “if 語句” 展示了一個 if 語句縮進的例子。

    例 2.6. if 語句

    
    def fib(n):                   1
        print 'n =', n            2
        if n > 1:                 3
            return n * fib(n - 1)
        else:                     4
            print 'end of the line'
            return 1
    
    1 這是一個名為 fib 的函數,有一個參數 n。在函數內的所有代碼都是縮進的。
    2 Python 中向屏幕輸出內容非常容易,只要使用 print 即可。print 語句可以接受任何數據類型,包括字符串、整數和其它類型,如字典和列表 (我們將在下一章學習)。甚至可以混在一起輸出,只需用逗號隔開。所有值都輸出到同一行,用空格隔開 (逗號并不打印出來)。所以當用 5 來調用 fib 時,將輸出“n = 5”。
    3 if 語句是一種的代碼塊。如果 if 表達式計算為 true,緊跟著的縮進塊會被執行,否則進入 else 塊執行。
    4 當然 ifelse 塊可以包含許多行,只要它們都同樣縮進。這個 else 塊中有兩行代碼。對于多行代碼塊沒有其它特殊的語法,只要縮進就行了。

    在經過一些最初的抗議和幾個與 Fortran 的嘲諷的類比之后,您會心平氣和地對待代碼縮進,并且開始看到它的好處。一個主要的好處就是所有的 Python 程序看上去都差不多,因為縮進是一種語言的要求而不是一種風格。這樣就使得閱讀和理解他人的 Python 代碼容易得多。

    注意
    Python 使用硬回車來分割語句,冒號和縮進來分割代碼塊。C++Java 使用分號來分割語句,花括號來分割代碼塊。

    進一步閱讀

    97av