Python中的變量與常量

一、變量、常量的區別

  • 變量:在程序運行過程中,值會發生變化的量。
  • 常量:在程序運行過程中,值不會發生變化的量。

無論是變量還是常量,在創建時都會在內存中開辟一塊空間,用於保存它的值。

二、變量

1. Python中的變量不需要聲明類型

這是根據Python的動態語言特性而來。變量可以直接使用,而不需要提前聲明類型。例如下面的a,b,c,d四個變量,在使用前沒有進行任何的諸如 int a, str b, list c , int d 的類型聲明,而這在C語言和JAVA編程語言中是必須要攜帶的。

例如:

a = 4 
 b = "haha" 
 c = [] 
 d = 9-5 

2. 用“=”號來給變量賦值

a = 100 


這裡的等號要理解並讀作“賦值”,而不是“等於”,“賦值”是對變量的操作,而“等於”是對兩個變量進行比較。上面的a,b,c,d四個變量,就通過“=”號,賦予瞭不同的值。

3. 賦值

每個變量在使用前都必須賦值,變量賦值以後才會被創建。

新的變量通過賦值的動作,創建並開辟內存空間,保存值。如果沒有賦值而直接使用會拋出賦值前引用的異常或者未命名異常。

例如:

a       # 孤單單一個a,什麼也表示不瞭,隻能報錯 
a = 1   # 這樣就沒問題瞭,解釋器知道a是個新變量瞭 
c.append(1)     # c是個什麼鬼? 
NameError: name 'c' is not defined 


結果:

4. 變量

Python中,變量本身沒有數據類型的概念

通常所說的“變量類型”是變量所引用的對象的類型,或者說是變量的值的類型。

a = 1 
a = "haha" 
a = [1, 2, 3] 
a = { "k1":"v1"} 


變量a在創建的時候,賦予瞭值為1的整數類型,然後又被改成字符串“haha”,再又變成一個列表,最後是個字典。變量a在動態的改變,它的值分別是不同的數據類型,這是動態語言的特點。

5. “=”

“=”號這個賦值運算符是從右往左的計算順序

a = 1 
b = 2 
c = a + b  # 先計算a+b的值,再賦給c 
print(c) 

6. Python允許同時為多個變量賦值

(例如:a = b = c = 1,最終大傢都是1)。也可以同時為多個變量賦值,用逗號分隔,逐一對應。

例如:a, b, c = 1, 2, 3,最後a是1,b是2,c是3。

不要把賦值語句的等號等同於數學的等號。

x = 1 
 
x = x + 2 

如果從數學上理解x = x + 2那無論如何是不成立的,在程序中,賦值語句先計算右側的表達式x + 2,得到結果3,再賦給變量x。由於x之前的值是1,重新賦值後,x的值變成3。

a = ‘ABC’時,Python解釋器幹瞭兩件事情:

  • 在內存中創建瞭一個‘ABC’的字符串對象;
  • 在內存中創建瞭一個名為a的變量,並把它指向’ABC’。

也可以把一個變量a賦值給另一個變量b,這個操作實際上是將變量b指向變量a所指向的數據,

例如下面的代碼:

a = 'Jack' 
b = a 
a = 'Tom' 
print(b) 
print(a) 

最後變量b的內容到底是’Jack’還是’Tom’?如果從數學意義上理解,就會錯誤地得出b和a相同是‘Tom',但實際上b的值還是’Jack ‘!

請牢記:Python中的一切都是對象,變量是對象的引用!

圖:

執行a = ‘Jack',解釋器創建字符串‘Jack’對象和變量a,並把a指向‘Jack’對象;

執行b = a,解釋器創建變量b,並且將其指向變量a指向的字符串‘Jack’對象;

執行a = ‘Tom',解釋器創建字符串‘Tom’對象,並把a改為指向‘Tom’對象,與b無關。

三、常量

常量就是不變的變量,比如常用的數學常數圓周率就是一個常量。在Python中,通常用全部大寫的變量名表示常量:

PI = 3.14159265359 


但事實上,從Python語法角度看,PI仍然是一個變量,因為Python根本沒有任何機制保證PI不會被改變。你完全可以給PI賦值為10,不會彈出任何錯誤。所以,用全部大寫的變量名表示常量隻是一個習慣上的用法。

常量通常放置在代碼的最上部,並作為全局使用。

四、總結

到此這篇關於Python中的變量與常量的文章就介紹到這瞭,更多相關Python變量與常量內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: