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