Python 變量

轉載自:http://www.cnblogs.com/xiaoit/p/4039346.html

Python 變量

在Python中,等號=是賦值語句,可以把任意數據類型賦值給變量,同一個變量可以反覆賦值,而且可以是不同類型的變量,例如:
a = 123 # a是整數
print a
a = 'imooc' # a變爲字符串
print a
這種變量本身類型不固定的語言稱之爲動態語言,與之對應的是靜態語言
靜態語言在定義變量時必須指定變量類型,如果賦值的時候類型不匹配,就會報錯。例如Java是靜態語言,賦值語句如下(// 表示註釋):
int a = 123; // a是整數類型變量
a = "mooc"; // 錯誤:不能把字符串賦給整型變量
和靜態語言相比,動態語言更靈活,就是這個原因。
請不要把賦值語句的等號等同於數學的等號。比如下面的代碼:
x = 10
x = x + 2
如果從數學上理解x = x + 2那無論如何是不成立的,在程序中,賦值語句先計算右側的表達式x + 2,得到結果12,再賦給變量x。由於x之前的值是10,重新賦值後,x的值變成12。
最後,理解變量在計算機內存中的表示也非常重要。當我們寫:a = 'ABC'時,Python解釋器幹了兩件事情:
1. 在內存中創建了一個'ABC'的字符串;
2. 在內存中創建了一個名爲a的變量,並把它指向'ABC'。
也可以把一個變量a賦值給另一個變量b,這個操作實際上是把變量b指向變量a所指向的數據,例如下面的代碼:
a = 'ABC'
b = a
a = 'XYZ'
print b
最後一行打印出變量b的內容到底是'ABC'呢還是'XYZ'?如果從數學意義上理解,就會錯誤地得出b和a相同,也應該是'XYZ',但實際上b的值是'ABC',讓我們一行一行地執行代碼,就可以看到到底發生了什麼事:
執行a = 'ABC',解釋器創建了字符串 'ABC'和變量 a,並把a指向 'ABC':

執行b = a,解釋器創建了變量 b,並把b指向 a 指向的字符串'ABC':

執行a = 'XYZ',解釋器創建了字符串'XYZ',並把a的指向改爲'XYZ',但b並沒有更改:

 

求知若渴, 虛心若愚……


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章