2.1 python常量與變量
變量:在程序運(yùn)行過程中,值會發(fā)生變化的量
常量:在程序運(yùn)行過程中,值不會發(fā)生變化的量
無論是變量還是常量,在創(chuàng)建時都會在內(nèi)存中開辟一塊空間,用于保存它的值。
1. 變量不需要聲明類型
Python 的變量和常量不需要事先聲明類型,這是根據(jù)Python的動態(tài)語言特性而來。
例如下面的 age 和 name 兩個變量,在使用前沒有進(jìn)行任何的諸如 age int 和 name string 的類型聲明,而這在一些靜態(tài)語言中,比如 JAVA 和 Golang 中是必須的。
>>> age = 18
>>> name = "王炳明"
>>>
2. 賦值與比較
Python 中 用 = 號來給變量賦值,比如下面這個表達(dá)式,age 這個變量的值就是 18
>>> age = 18
與之相似的,新手會容易混淆的是 兩個等號 ==
,它表示的是比較兩個值是否相等,如果相等返回 True
,如果不相等返回 False
>>> age = 18
>>> age == 18
True
>>> age == 17
False
3. 先創(chuàng)建再使用
每個變量在使用前都必須賦值,變量賦值以后才會被創(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. 賦值?的方式
賦值的兩種方式
第一種:單個直接賦值
>>> age = 18
>>> age
18
第二種:多個批量賦值
>>> a = b = c = 1
>>> a
1
>>> b
1
>>> c
1
第三種:先計算再賦值
# 先計算 17+1,再把結(jié)果賦值給age
>>> age = 17+1
>>> age
18
第四種:分別賦值
>>> a, b, c = 1, 2, 3
>>> a
1
>>> b
2
>>> c
3
第三種:先計算再賦值
5. 理解賦值的背后
理解變量在計算機(jī)內(nèi)存中的表示也非常重要。
當(dāng)我們寫:a = "Jack" 時,Python解釋器干了兩件事情:
在內(nèi)存中創(chuàng)建了一個'Jack'的字符串對象;
在內(nèi)存中創(chuàng)建了一個名為a的變量,并把它指向 'Jack'。
而當(dāng)你把一個變量a賦值給另一個變量b,這個操作實(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í)是一個數(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ù)圓周率就是一個常量。在Python中,通常用全部大寫的變量名表示常量:
>>> PI = 3.14159265359
>>> PI
3.14159265359
但事實(shí)上,從Python語法角度看,PI仍然是一個變量,因?yàn)镻ython根本沒有任何機(jī)制保證PI不會被改變。你完全可以給PI賦值為10,不會彈出任何錯誤。所以,用全部大寫的變量名表示常量只是一個習(xí)慣上的用法。
常量通常放置在代碼的最上部,并作為全局使用。
審核編輯:湯梓紅
-
語言
+關(guān)注
關(guān)注
1文章
97瀏覽量
24479 -
字符
+關(guān)注
關(guān)注
0文章
236瀏覽量
25539 -
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86460
發(fā)布評論請先 登錄
深入了解U8g2與LVGL圖形庫
深入了解 PCB 制造技術(shù):銑削

const定義的是不是常量
深入了解渦街流量計 原理及內(nèi)部構(gòu)造
如何為不同的電機(jī)選擇合適的驅(qū)動芯片?納芯微帶你深入了解!

深入了解光伏逆變器測試系統(tǒng)

深入了解PCI轉(zhuǎn)XMC載板轉(zhuǎn)接卡
深入了解基于CANoe的VIO系統(tǒng)應(yīng)用

技術(shù)干貨驛站 ▏深入理解C語言:掌握常量,讓你的代碼更加穩(wěn)固高效!

深入了解六軸力傳感器:原理、分類與應(yīng)用

深入了解表面貼裝型晶體濾波器:DSF753S 2POLE、DSF753S 3POLE 和 DSF753S 4POLE

深入了解 MEMS 振蕩器 溫度補(bǔ)償 MEMS 振蕩器 TC-MO

技術(shù)干貨驛站 ▏深入理解C語言:基本數(shù)據(jù)類型和變量

評論