2.1 python常量與變量
變量:在程序運行過程中,值會發生變化的量
常量:在程序運行過程中,值不會發生變化的量
無論是變量還是常量,在創建時都會在內存中開辟一塊空間,用于保存它的值。
1. 變量不需要聲明類型
Python 的變量和常量不需要事先聲明類型,這是根據Python的動態語言特性而來。
例如下面的 age 和 name 兩個變量,在使用前沒有進行任何的諸如 age int 和 name string 的類型聲明,而這在一些靜態語言中,比如 JAVA 和 Golang 中是必須的。
>>> age = 18
>>> name = "王炳明"
>>>
2. 賦值與比較
Python 中 用 = 號來給變量賦值,比如下面這個表達式,age 這個變量的值就是 18
>>> age = 18
與之相似的,新手會容易混淆的是 兩個等號 ==
,它表示的是比較兩個值是否相等,如果相等返回 True
,如果不相等返回 False
>>> age = 18
>>> age == 18
True
>>> age == 17
False
3. 先創建再使用
每個變量在使用前都必須賦值,變量賦值以后才會被創建。
新的變量通過賦值的動作,創建并開辟內存空間,保存值。
如果沒有賦值而直接使用,會拋出變量未定義的異常。例如:
>>> age
Traceback (most recent call last):
File "", line 1, in
NameError: name 'age' is not defined
>>>
>>> age = 18
>>> age
18
4. 賦值?的方式
賦值的兩種方式
第一種:單個直接賦值
>>> age = 18
>>> age
18
第二種:多個批量賦值
>>> a = b = c = 1
>>> a
1
>>> b
1
>>> c
1
第三種:先計算再賦值
# 先計算 17+1,再把結果賦值給age
>>> age = 17+1
>>> age
18
第四種:分別賦值
>>> a, b, c = 1, 2, 3
>>> a
1
>>> b
2
>>> c
3
第三種:先計算再賦值
5. 理解賦值的背后
理解變量在計算機內存中的表示也非常重要。
當我們寫:a = "Jack" 時,Python解釋器干了兩件事情:
在內存中創建了一個'Jack'的字符串對象;
在內存中創建了一個名為a的變量,并把它指向 'Jack'。
而當你把一個變量a賦值給另一個變量b,這個操作實際上是將變量b指向變量a所指向的數據,例如下面的代碼:
>>> a = "Jack"
>>> a
'Jack'
>>> b = a
>>> b
'Jack'
>>> id(a)
4332916664
>>> id(b)
4332916664
通過id()
可以查看變量值的內存地址,打印出來的 a 和 b的內存地址是一樣的,因此二者其實是一個數據。
但如果繼續對 a 進行賦值其他值, 會發現 a 的內存地址變了,而 b 的并沒有變
>>> a = "Tom"
>>> a
'Tom'
>>> id(a)
4332974128
>>> id(b)
4332916664
請牢記:Python中的一切都是對象,變量是對象的引用!:
執行a = ‘Jack’,解釋器創建字符串‘Jack’對象和變量a,并把a指向‘Jack’對象;
執行b = a,解釋器創建變量b,并且將其指向變量a指向的字符串‘Jack’對象;
執行a = ‘Tom’,解釋器創建字符串‘Tom’對象,并把a改為指向‘Tom’對象,與b無關。
6.? 簡單介紹常量
說完變量,還要說下常量。
常量就是不變的變量,比如常用的數學常數圓周率就是一個常量。在Python中,通常用全部大寫的變量名表示常量:
>>> PI = 3.14159265359
>>> PI
3.14159265359
但事實上,從Python語法角度看,PI仍然是一個變量,因為Python根本沒有任何機制保證PI不會被改變。你完全可以給PI賦值為10,不會彈出任何錯誤。所以,用全部大寫的變量名表示常量只是一個習慣上的用法。
常量通常放置在代碼的最上部,并作為全局使用。
審核編輯:湯梓紅
-
語言
+關注
關注
1文章
97瀏覽量
24242 -
字符
+關注
關注
0文章
233瀏覽量
25208 -
python
+關注
關注
56文章
4797瀏覽量
84688
發布評論請先 登錄
相關推薦
評論