Python中的變量與常量

一、變量、常量的區(qū)別
- 變量:在程序運(yùn)行過(guò)程中,值會(huì)發(fā)生變化的量。
- 常量:在程序運(yùn)行過(guò)程中,值不會(huì)發(fā)生變化的量。
無(wú)論是變量還是常量,在創(chuàng)建時(shí)都會(huì)在內(nèi)存中開(kāi)辟一塊空間,用于保存它的值。
二、變量
1. Python中的變量不需要聲明類型
這是根據(jù)Python的動(dòng)態(tài)語(yǔ)言特性而來(lái)。變量可以直接使用,而不需要提前聲明類型。例如下面的a,b,c,d四個(gè)變量,在使用前沒(méi)有進(jìn)行任何的諸如 int a, str b, list c , int d 的類型聲明,而這在C語(yǔ)言和JAVA編程語(yǔ)言中是必須要攜帶的。
例如:
a = 4 b = "haha" c = [] d = 9-5
2. 用“=”號(hào)來(lái)給變量賦值
a = 100
這里的等號(hào)要理解并讀作“賦值”,而不是“等于”,“賦值”是對(duì)變量的操作,而“等于”是對(duì)兩個(gè)變量進(jìn)行比較。上面的a,b,c,d四個(gè)變量,就通過(guò)“=”號(hào),賦予了不同的值。
3. 賦值
每個(gè)變量在使用前都必須賦值,變量賦值以后才會(huì)被創(chuàng)建。
新的變量通過(guò)賦值的動(dòng)作,創(chuàng)建并開(kāi)辟內(nèi)存空間,保存值。如果沒(méi)有賦值而直接使用會(huì)拋出賦值前引用的異?;蛘呶疵惓?。
例如:
a # 孤單單一個(gè)a,什么也表示不了,只能報(bào)錯(cuò) a = 1 # 這樣就沒(méi)問(wèn)題了,解釋器知道a是個(gè)新變量了 c.append(1) # c是個(gè)什么鬼? NameError: name 'c' is not defined
結(jié)果:

4. 變量
在Python中,變量本身沒(méi)有數(shù)據(jù)類型的概念
通常所說(shuō)的“變量類型”是變量所引用的對(duì)象的類型,或者說(shuō)是變量的值的類型。
a = 1
a = "haha"
a = [1, 2, 3]
a = { "k1":"v1"}
變量a在創(chuàng)建的時(shí)候,賦予了值為1的整數(shù)類型,然后又被改成字符串“haha”,再又變成一個(gè)列表,最后是個(gè)字典。變量a在動(dòng)態(tài)的改變,它的值分別是不同的數(shù)據(jù)類型,這是動(dòng)態(tài)語(yǔ)言的特點(diǎn)。
5. “=”
“=”號(hào)這個(gè)賦值運(yùn)算符是從右往左的計(jì)算順序
a = 1 b = 2 c = a + b # 先計(jì)算a+b的值,再賦給c print(c)

6. Python允許同時(shí)為多個(gè)變量賦值
(例如:a = b = c = 1,最終大家都是1)。也可以同時(shí)為多個(gè)變量賦值,用逗號(hào)分隔,逐一對(duì)應(yīng)。
例如:a, b, c = 1, 2, 3,最后a是1,b是2,c是3。
不要把賦值語(yǔ)句的等號(hào)等同于數(shù)學(xué)的等號(hào)。
x = 1 x = x + 2
如果從數(shù)學(xué)上理解x = x + 2那無(wú)論如何是不成立的,在程序中,賦值語(yǔ)句先計(jì)算右側(cè)的表達(dá)式x + 2,得到結(jié)果3,再賦給變量x。由于x之前的值是1,重新賦值后,x的值變成3。
a = 'ABC'時(shí),Python解釋器干了兩件事情:
- 在內(nèi)存中創(chuàng)建了一個(gè)‘ABC'的字符串對(duì)象;
- 在內(nèi)存中創(chuàng)建了一個(gè)名為a的變量,并把它指向'ABC'。
也可以把一個(gè)變量a賦值給另一個(gè)變量b,這個(gè)操作實(shí)際上是將變量b指向變量a所指向的數(shù)據(jù),
例如下面的代碼:
a = 'Jack' b = a a = 'Tom' print(b) print(a)
最后變量b的內(nèi)容到底是'Jack'還是'Tom'?如果從數(shù)學(xué)意義上理解,就會(huì)錯(cuò)誤地得出b和a相同是‘Tom',但實(shí)際上b的值還是'Jack ‘!
請(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無(wú)關(guān)。
三、常量
常量就是不變的變量,比如常用的數(shù)學(xué)常數(shù)圓周率就是一個(gè)常量。在Python中,通常用全部大寫的變量名表示常量:
PI = 3.14159265359
但事實(shí)上,從Python語(yǔ)法角度看,PI仍然是一個(gè)變量,因?yàn)?code>Python根本沒(méi)有任何機(jī)制保證PI不會(huì)被改變。你完全可以給PI賦值為10,不會(huì)彈出任何錯(cuò)誤。所以,用全部大寫的變量名表示常量只是一個(gè)習(xí)慣上的用法。
常量通常放置在代碼的最上部,并作為全局使用。
四、總結(jié)
到此這篇關(guān)于Python中的變量與常量的文章就介紹到這了,更多相關(guān)Python變量與常量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3中函數(shù)參數(shù)的四種簡(jiǎn)單用法
這篇文章主要介紹了python3中函數(shù)參數(shù)的四種簡(jiǎn)單用法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
Python使用missingno模塊輕松處理數(shù)據(jù)缺失
missingno是一個(gè)基于Python的開(kāi)源數(shù)據(jù)可視化工具,旨在幫助數(shù)據(jù)分析師和科學(xué)家更好地理解和處理數(shù)據(jù)缺失,下面我們就來(lái)看看如何使用missingno處理數(shù)據(jù)缺失吧2024-02-02
使用Pytorch構(gòu)建第一個(gè)神經(jīng)網(wǎng)絡(luò)模型?附案例實(shí)戰(zhàn)
這篇文章主要介紹了用Pytorch構(gòu)建第一個(gè)神經(jīng)網(wǎng)絡(luò)模型(附案例實(shí)戰(zhàn)),本文通過(guò)實(shí)例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
Pyqt實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了Pyqt實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Python 中的 plt.hist 函數(shù)基本用法詳解
plt.hist 函數(shù)用于繪制直方圖,直方圖是一種用來(lái)表示數(shù)據(jù)分布的圖形,它將數(shù)據(jù)分成若干個(gè)區(qū)間,然后統(tǒng)計(jì)每個(gè)區(qū)間中數(shù)據(jù)的數(shù)量,最終以柱狀圖的形式展示出來(lái),這篇文章主要介紹了Python 中的 plt.hist 函數(shù)基本用法詳解,需要的朋友可以參考下2021-04-04
Python的Django框架中forms表單類的使用方法詳解
用戶表單是Web端的一項(xiàng)基本功能,大而全的Django框架中自然帶有現(xiàn)成的基礎(chǔ)form對(duì)象,Python的Django框架中forms表單類的使用方法詳解2016-06-06

