Python中什麼是變數
阿新 • • 發佈:2018-11-01
在Python中,變數的概念基本上和初中代數的方程變數是一致的。 例如,對於方程式 y=x*x ,x就是變數。當x=2時,計算結果是4,當x=5時,計算結果是25。 只是在計算機程式中,變數不僅可以是數字,還可以是任意資料型別。 在Python程式中,變數是用一個變數名錶示,變數名必須是大小寫英文、數字和下劃線(_)的組合,且不能用數字開頭,比如: a = 1 變數a是一個整數。 t_007 = 'T007' 變數t_007是一個字串。 在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並沒有更改: 所以,最後列印變數b的結果自然是'ABC'了。