<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            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 使用分號來分割語句,花括號來分割代碼塊。

            進一步閱讀

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线