Python的變量聲明
Python 與大多數其它語言一樣有局部變量和全局變量之分,但是它沒有明顯的變量聲明。變量通過首次賦值產生,當超出作用範圍時自動消亡。
Example 1. 定義 myParams 變量
if __name__ == "__main__": myParams = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret" }
首先註意縮進。 if 語句是代碼塊,需要像函數一樣縮進。
其次,變量的賦值是一條被分成了多行的命令,用反斜線 (“ ”) 作為續行符。
上海python培訓整理編輯,轉載說明出處!
1、書寫多行命令
當一條命令用續行符 (“ ”) 分割成多行時,後續的行可以以任何方式縮進,此時 Python 通常的嚴格的縮進規則無需遵守。如果您的 Python IDE 自由對後續行進行了縮進,您應該把它當成是缺省處理,除非您有特別的原因不這麽做。
嚴格地講,在小括號,方括號或大括號中的表達式 (如定義一個 dictionary ) 可以用或者不用續行符 (“ ”) 分割成多行。甚至在不是必需的時候,我也喜歡使用續行符,因為我認為這樣會讓代碼讀起來更容易,但那只是風格問題。
您從未聲明過變量 myParams ,您只是給它賦了一個值。這點就像是VBScript 沒有設置 option explicit 選項一樣。幸運的是,與 VBScript 不同,Python 不允許您引用一個未被賦值的變量,試圖這樣做會引發一個異常。
2、變量引用
Example2. 引 用 未 賦 值 的變 量
if __name__ == "__main__": myParams = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret" }
遲早有一天您會為此而感謝 Python 。
3、一次賦多值
Python 中比較 “酷” 的一種編程簡寫是使用序列來一次給多個變量賦值。
Example 3. 一次賦 多值
>>> v = (‘a‘, ‘b‘, ‘e‘) >>> (x, y, z) = v (1) >>> x ‘a‘ >>> y ‘b‘ >>> z ‘e‘
(1) v 是一個三元素的 tuple,並且 (x, y, z) 是一個三變量的 tuple。將一個 tuple賦值給另一個 tuple,會按順序將 v 的每個值賦值給每個變量。
這種用法有許多種用途。我經常想要將一定範圍的值賦給多個變量。在 C 語言中,可以使用 enum 類型,手工列出每個常量和其所對應的值,當值是連續的時候這一過程讓人感到特別繁瑣。而在 Python 中,您可以使用內置的 range函數和多變量賦值的方法來快速進行賦值。
Example 4. 連 續值賦值
>>> v = (‘a‘, ‘b‘, ‘e‘) >>> (x, y, z) = v (1) >>> x ‘a‘ >>> y ‘b‘ >>> z ‘e‘
(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模塊。
感謝閱讀,歡迎評論,更多內容或及時獲取支持請訪問 上海python培訓
Python的變量聲明