Python入門:變數

大家讲道理
發布: 2017-04-19 11:43:16
原創
1243 人瀏覽過

Python中,變數的概念基本上和初中代數的方程式變數是一致的。

例如,對於方程式y=x*xx就是變數。當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'了。

以上是Python入門:變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章