<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 3.4.?變量聲明 * 3.4.1\. 變量引用 * 3.4.2\. 一次賦多值 現在您已經了解了有關 dictionary、tuple、和 list 的相關知識 (哦,我的老天!),讓我們回到 [第 2 章](../getting_to_know_python/index.html) 的例子程序 `odbchelper.py`。 Python 與大多數其它語言一樣有局部變量和全局變量之分,但是它沒有明顯的變量聲明。變量通過首次賦值產生,當超出作用范圍時自動消亡。 ## 例?3.17.?定義 `myParams` 變量 ``` if __name__ == "__main__": myParams = {"server":"mpilgrim", \ "database":"master", \ "uid":"sa", \ "pwd":"secret" \ } ``` 首先注意縮進。`if` 語句是代碼塊,需要像函數一樣縮進。 其次,變量的賦值是一條被分成了多行的命令,用反斜線 (“`\`”) 作為續行符。 > 注意 > 當一條命令用續行符 (“`\`”) 分割成多行時,后續的行可以以任何方式縮進,此時 Python 通常的嚴格的縮進規則無需遵守。如果您的 Python IDE 自由對后續行進行了縮進,您應該把它當成是缺省處理,除非您有特別的原因不這么做。 嚴格地講,在小括號,方括號或大括號中的表達式 (如[定義一個 dictionary](declaring_variables.html#myparamsdef "例?3.17.?定義 myParams 變量")) 可以用或者不用續行符 (“`\`”) 分割成多行。甚至在不是必需的時候,我也喜歡使用續行符,因為我認為這樣會讓代碼讀起來更容易,但那只是風格問題。 第三,您從未聲明過變量 `myParams`,您只是給它賦了一個值。這點就像是 VBScript 沒有設置 `option explicit` 選項一樣。幸運的是,與 VBScript 不同,Python 不允許您引用一個未被賦值的變量,試圖這樣做會引發一個異常。 ## 3.4.1.?變量引用 ## 例?3.18.?引用未賦值的變量 ``` >>> x Traceback (innermost last): File "<interactive input>", line 1, in ? NameError: There is no variable named 'x' >>> x = 1 >>> x 1 ``` 遲早有一天您會為此而感謝 Python 。 ## 3.4.2.?一次賦多值 Python 中比較 “酷” 的一種編程簡寫是使用序列來一次給多個變量賦值。 ## 例?3.19.?一次賦多值 ``` >>> v = ('a', 'b', 'e') >>> (x, y, z) = v >>> x 'a' >>> y 'b' >>> z 'e' ``` | | | | --- | --- | | \[1\] | `v` 是一個三元素的 tuple,并且 `(x, y, z)` 是一個三變量的 tuple。將一個 tuple 賦值給另一個 tuple,會按順序將 `v` 的每個值賦值給每個變量。 | 這種用法有許多種用途。我經常想要將一定范圍的值賦給多個變量。在 C 語言中,可以使用 `enum` 類型,手工列出每個常量和其所對應的值,當值是連續的時候這一過程讓人感到特別繁瑣。而在 Python 中,您可以使用內置的 `range` 函數和多變量賦值的方法來快速進行賦值。 ## 例?3.20.?連續值賦值 ``` >>> range(7) [0, 1, 2, 3, 4, 5, 6] >>> (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7) >>> MONDAY 0 >>> TUESDAY 1 >>> SUNDAY 6 ``` | | | | --- | --- | | \[1\] | 內置的 `range` 函數返回一個元素為整數的 list。這個函數的簡化調用形式是接收一個上限值,然后返回一個初始值從 0 開始的 list,它依次遞增,直到但不包含上限值。(如果您愿意,您可以傳入其它的參數來指定一個非 `0` 的初始值和非 `1` 的步長。也可以使用 `print range.__doc__` 來了解更多的細節。) | | \[2\] | `MONDAY`、`TUESDAY`、`WEDNESDAY`、`THURSDAY`、`FRIDAY`、`SATURDAY` 和 `SUNDAY` 是我們定義的變量。(這個例子來自 `calendar` 模塊。它是一個很有趣的打印日歷的小模塊,像 UNIX 的 `cal` 命令。這個 `calendar` 模塊定義了一星期中每天的整數常量表示。) | | \[3\] | 現在每個變量都擁有了自己的值:`MONDAY` 的值為 `0`,`TUESDAY` 的值為 `1`,等等。 | 您也可以使用多變量賦值來創建返回多個值的函數,只要返回一個包含所有值的 tuple 即可。調用者可以將其視為一個 tuple,或將值賦給獨立的變量。許多標準的 Python 庫都是這樣做的,包括 `os` 模塊,我們將在 [第 6 章](../file_handling/index.html) 中討論。 ## 進一步閱讀 * _Python Reference Manual_ 展示了[什么時候可以忽略續行符](http://www.python.org/doc/current/ref/implicit-joining.html)和[什么時候您需要使用續行符](http://www.python.org/doc/current/ref/explicit-joining.html)的例子。 * _How to Think Like a Computer Scientist_ 演示了如何使用多變量賦值來[交換兩個變量的值](http://www.ibiblio.org/obp/thinkCSpy/chap09.htm)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看