2.1 python常量與變量
變量:在程序運(yùn)行過程中,值會(huì)發(fā)生變化的量
常量:在程序運(yùn)行過程中,值不會(huì)發(fā)生變化的量
無論是變量還是常量,在創(chuàng)建時(shí)都會(huì)在內(nèi)存中開辟一塊空間,用于保存它的值。
1. 變量不需要聲明類型
Python 的變量和常量不需要事先聲明類型,這是根據(jù)Python的動(dòng)態(tài)語言特性而來。
例如下面的 age 和 name 兩個(gè)變量,在使用前沒有進(jìn)行任何的諸如 age int 和 name string 的類型聲明,而這在一些靜態(tài)語言中,比如 JAVA 和 Golang 中是必須的。
>>> age = 18
>>> name = "王炳明"
>>>
2. 賦值與比較
Python 中 用 = 號(hào)來給變量賦值,比如下面這個(gè)表達(dá)式,age 這個(gè)變量的值就是 18
>>> age = 18
與之相似的,新手會(huì)容易混淆的是 兩個(gè)等號(hào) ==
,它表示的是比較兩個(gè)值是否相等,如果相等返回 True
,如果不相等返回 False
>>> age = 18
>>> age == 18
True
>>> age == 17
False
3. 先創(chuàng)建再使用
每個(gè)變量在使用前都必須賦值,變量賦值以后才會(huì)被創(chuàng)建。
新的變量通過賦值的動(dòng)作,創(chuàng)建并開辟內(nèi)存空間,保存值。
如果沒有賦值而直接使用,會(huì)拋出變量未定義的異常。例如:
>>> age
Traceback (most recent call last):
File "", line 1, in
NameError: name 'age' is not defined
>>>
>>> age = 18
>>> age
18
4. 賦值?的方式
賦值的兩種方式
第一種:?jiǎn)蝹€(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'的字符串對(duì)象;
在內(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ù)對(duì) a 進(jìn)行賦值其他值, 會(huì)發(fā)現(xiàn) a 的內(nèi)存地址變了,而 b 的并沒有變
>>> a = "Tom"
>>> a
'Tom'
>>> id(a)
4332974128
>>> id(b)
4332916664
請(qǐng)牢記:Python中的一切都是對(duì)象,變量是對(duì)象的引用!:
執(zhí)行a = ‘Jack’,解釋器創(chuàng)建字符串‘Jack’對(duì)象和變量a,并把a(bǔ)指向‘Jack’對(duì)象;
執(zhí)行b = a,解釋器創(chuàng)建變量b,并且將其指向變量a指向的字符串‘Jack’對(duì)象;
執(zhí)行a = ‘Tom’,解釋器創(chuàng)建字符串‘Tom’對(duì)象,并把a(bǔ)改為指向‘Tom’對(duì)象,與b無關(guān)。
![深入了解python常量與變量](https://file.elecfans.com//web2/M00/30/DE/poYBAGIM0HqAOU45AABzJurkcZQ515.png)
6.? 簡(jiǎn)單介紹常量
說完變量,還要說下常量。
常量就是不變的變量,比如常用的數(shù)學(xué)常數(shù)圓周率就是一個(gè)常量。在Python中,通常用全部大寫的變量名表示常量:
>>> PI = 3.14159265359
>>> PI
3.14159265359
但事實(shí)上,從Python語法角度看,PI仍然是一個(gè)變量,因?yàn)镻ython根本沒有任何機(jī)制保證PI不會(huì)被改變。你完全可以給PI賦值為10,不會(huì)彈出任何錯(cuò)誤。所以,用全部大寫的變量名表示常量只是一個(gè)習(xí)慣上的用法。
常量通常放置在代碼的最上部,并作為全局使用。
審核編輯:湯梓紅
-
語言
+關(guān)注
關(guān)注
1文章
97瀏覽量
24290 -
字符
+關(guān)注
關(guān)注
0文章
234瀏覽量
25262 -
python
+關(guān)注
關(guān)注
56文章
4807瀏覽量
85037
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
深入了解 PCB 制造技術(shù):銑削
![<b class='flag-5'>深入了解</b> PCB 制造技術(shù):銑削](https://file1.elecfans.com/web3/M00/06/97/wKgZO2eM_NCAAY9PAAAfSANG8Zo757.jpg)
const定義的是不是常量
深入了解渦街流量計(jì) 原理及內(nèi)部構(gòu)造
如何為不同的電機(jī)選擇合適的驅(qū)動(dòng)芯片?納芯微帶你深入了解!
![如何為不同的電機(jī)選擇合適的驅(qū)動(dòng)芯片?納芯微帶你<b class='flag-5'>深入了解</b>!](https://file1.elecfans.com//web3/M00/03/71/wKgZO2do1deAXcQaAACO1njv6io706.jpg)
深入了解光伏逆變器測(cè)試系統(tǒng)
![<b class='flag-5'>深入了解</b>光伏逆變器測(cè)試系統(tǒng)](https://file1.elecfans.com/web2/M00/09/7D/wKgZomcOFguAf9O-AAX6cKgCZMY086.png)
深入了解PCI轉(zhuǎn)XMC載板轉(zhuǎn)接卡
技術(shù)干貨驛站 ▏深入理解C語言:掌握常量,讓你的代碼更加穩(wěn)固高效!
![技術(shù)干貨驛站 ▏<b class='flag-5'>深入</b>理解C語言:掌握<b class='flag-5'>常量</b>,讓你的代碼更加穩(wěn)固高效!](https://file1.elecfans.com/web2/M00/04/91/wKgZombQEsqAKB70AAAi0VIqEDo129.png)
深入了解表面貼裝型晶體濾波器:DSF753S 2POLE、DSF753S 3POLE 和 DSF753S 4POLE
![<b class='flag-5'>深入了解</b>表面貼裝型晶體濾波器:DSF753S 2POLE、DSF753S 3POLE 和 DSF753S 4POLE](https://file1.elecfans.com/web2/M00/FF/9C/wKgZomapqcKAUWXQAALVTTpWgw8235.png)
深入了解 MEMS 振蕩器 溫度補(bǔ)償 MEMS 振蕩器 TC-MO
![<b class='flag-5'>深入了解</b> MEMS 振蕩器 溫度補(bǔ)償 MEMS 振蕩器 TC-MO](https://file1.elecfans.com/web2/M00/00/51/wKgaomaopkiAVTPkAAKbpK2LxE4092.png)
技術(shù)干貨驛站 ▏深入理解C語言:基本數(shù)據(jù)類型和變量
![技術(shù)干貨驛站 ▏<b class='flag-5'>深入</b>理解C語言:基本數(shù)據(jù)類型和<b class='flag-5'>變量</b>](https://file1.elecfans.com/web2/M00/FC/CD/wKgZomaWI5uASgBaAABuQHdMO4I302.png)
小熊派官網(wǎng)正式上線 可深入了解小熊派的各款開發(fā)套件
![小熊派官網(wǎng)正式上線 可<b class='flag-5'>深入了解</b>小熊派的各款開發(fā)套件](https://file1.elecfans.com/web2/M00/ED/4B/wKgZomZqmu-AGKdSAAAnllE0ias753.png)
深入了解IEEE協(xié)會(huì):設(shè)備MAC地址申請(qǐng)指南
![<b class='flag-5'>深入了解</b>IEEE協(xié)會(huì):設(shè)備MAC地址申請(qǐng)指南](https://file1.elecfans.com/web2/M00/E3/6E/wKgZomY8lWSAZ8hDAAAr9pX67WU296.png)
深入了解影響ZR執(zhí)行器性能的關(guān)鍵因素
![<b class='flag-5'>深入了解</b>影響ZR執(zhí)行器性能的關(guān)鍵因素](https://file1.elecfans.com/web2/M00/C1/D1/wKgZomXe3VSAYxfFAAQpEmJBX2o545.png)
評(píng)論