學過數學方程的讀者都知道:利用方程來解應用題時,常常會設置一個x來代表應用題中的某一個數。在編寫代碼中也類似,會定義一個x(或其他名字)來指代某個數字對應的意義,這個 x 就是作變量。在實際應用中,變量可以指代輸入,也可以指代結果。一旦編好程序後,計算機就會把變量指代的具體數代入到內存裡,並進行運算。
變量是編程語言中最基本的術語,用來代指計算機中存放的可變數據——如整數、小數、字符或被調用的一片內存空間。如:
Val ="hello"
上面的代碼在執行時,系統中就會有一個變量叫 Val,它指向內存中存放字符串 “hello” 所在的位置,如下圖所示:
圖:Python變量
定義了變量之後,可以通過編寫具體的邏輯對變量進行操作計算,從而實現想要的功能。
在實際情況中,程序需要處理不同類型的變量,所以在Python內部,變量是要分為各種類型的。比如,整型變量只可以代表整數,浮點型變量只可以代表帶小數點的數字,字符型變量只可以代表字符。
編寫 Python 代碼過程中,定義變量與變量賦值必須在同一步完成。Python 內部會根據所賦變量的類型來創建該變量。
例如:定義整型變量 a 等於 5,可以寫成 a=5。這時 Python 會在內存中創建一個類型為整型的變量 a,並讓這個 a 的值為 5。在後面的代碼中用到 a 就相當於用到了數值 5。
Python 語言可以根據賦值的語句來自動創建對應類型的變量,它是怎麼實現的呢?
Python 內部使用了一個對象模型,這個對象模型用來儲存變量及其對應的數據。在Python語言中,任何類型的變量都會被翻譯成一個對象,這就是變量的本質。
Python內部的對象模型由3部分組成:身份、類型和值,具體意義如下:
實際寫代碼中,可以通過一條語句定義多個變量,彼此之間用逗號隔開即可。例如,在一條語句中為多個變量同時賦值,如下:
var1,var2,var3=value1,value2,value3
這時,系統會根據 value1、value2、value3 的值類型,分別定義 var1、var2、var3 三個變量,並為它們賦值。例如:
var1,var2,var3 = 2,5,3 #定義var1為2,var2為5,var3為3
print("指針:",id(var1),"類型:",type(var1),"值:",var1) #輸出變量var1、var2、var3的指針、類型、值
print("指針:",id(var2),"類型:",type(var2),"值:",var2)
print("指針:",id(var3),"類型:",type(var3),"值:",var3)
這段程序運行後,輸出的結果為:
指針:1650393616 類型:<class 'int'> 值:2
指針:1650393712 類型:<class 'int'> 值:5
指針:1650393648 類型:<class 'int'> 值:3
不同的 Python 版本對類型的歸類略有差異,這裡以 Python 3 為主。在 Python 3中,所劃分的類型有六種:
其中,numbers 類型是一個數值類型的合集,具體又可以細分為 int(整型)、float(浮點型)、bool(布爾型)、complex(復數)等類型。同時每個類型都有其自身的特點和規則。
Python 將自身所支持的變量類型定義成了一個個的類,任何類型(numbers、string、list…)都是一個類。每個類都有自己的方法和屬性,通過類的方法和屬性來規范該類型數值的操作。
Python中內置了兩個幫助函數:
當您不清楚變量所屬類型時,可以使用上述函數進行查看,這將對您非常有幫助。