在Python程序中,變量是用一個變量名錶示,變量名必須是大小寫英文、數字和下劃線(_)的組合,且不能用數字開頭,好比: a = 1 ,變量a是一個整數。 t_007 = 'T007' ,變量t_007是一個字符串。
在Python中,等號=是賦值語句,能夠把任意數據類型賦值給變量,同一個變量能夠反覆賦值,並且能夠是不一樣類型的變量,例如: a = 123 # a是整數 print a a = 'imooc' # a變爲字符串 print a 這種變量自己類型不固定的語言稱之爲動態語言,與之對應的是靜態語言。 python是動態語言。 靜態語言在定義變量時必須指定變量類型,若是賦值的時候類型不匹配,就會報錯。例如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解釋器幹了兩件事情:
在內存中建立了一個'ABC'的字符串;
在內存中建立了一個名爲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'了。