Python中的變量與常量
一、變量、常量的區(qū)別
- 變量:在程序運行過程中,值會發(fā)生變化的量。
- 常量:在程序運行過程中,值不會發(fā)生變化的量。
無論是變量還是常量,在創(chuàng)建時都會在內(nèi)存中開辟一塊空間,用于保存它的值。
二、變量
1. Python中的變量不需要聲明類型
這是根據(jù)Python
的動態(tài)語言特性而來。變量可以直接使用,而不需要提前聲明類型。例如下面的a,b,c,d四個變量,在使用前沒有進(jìn)行任何的諸如 int a
, str b
, list c
, int d
的類型聲明,而這在C語言和JAVA
編程語言中是必須要攜帶的。
例如:
a = 4 b = "haha" c = [] d = 9-5
2. 用“=”號來給變量賦值
a = 100
這里的等號要理解并讀作“賦值”,而不是“等于”,“賦值”是對變量的操作,而“等于”是對兩個變量進(jìn)行比較。上面的a,b,c,d四個變量,就通過“=”號,賦予了不同的值。
3. 賦值
每個變量在使用前都必須賦值,變量賦值以后才會被創(chuàng)建。
新的變量通過賦值的動作,創(chuàng)建并開辟內(nèi)存空間,保存值。如果沒有賦值而直接使用會拋出賦值前引用的異?;蛘呶疵惓?。
例如:
a # 孤單單一個a,什么也表示不了,只能報錯 a = 1 # 這樣就沒問題了,解釋器知道a是個新變量了 c.append(1) # c是個什么鬼? NameError: name 'c' is not defined
結(jié)果:
4. 變量
在Python
中,變量本身沒有數(shù)據(jù)類型的概念
通常所說的“變量類型”是變量所引用的對象的類型,或者說是變量的值的類型。
a = 1 a = "haha" a = [1, 2, 3] a = { "k1":"v1"}
變量a在創(chuàng)建的時候,賦予了值為1的整數(shù)類型,然后又被改成字符串“haha
”,再又變成一個列表,最后是個字典。變量a在動態(tài)的改變,它的值分別是不同的數(shù)據(jù)類型,這是動態(tài)語言的特點。
5. “=”
“=”
號這個賦值運算符是從右往左的計算順序
a = 1 b = 2 c = a + b # 先計算a+b的值,再賦給c print(c)
6. Python允許同時為多個變量賦值
(例如:a = b = c = 1
,最終大家都是1)。也可以同時為多個變量賦值,用逗號分隔,逐一對應(yīng)。
例如:a, b, c = 1, 2, 3,
最后a是1,b是2,c是3。
不要把賦值語句的等號等同于數(shù)學(xué)的等號。
x = 1 x = x + 2
如果從數(shù)學(xué)上理解x = x + 2
那無論如何是不成立的,在程序中,賦值語句先計算右側(cè)的表達(dá)式x + 2
,得到結(jié)果3,再賦給變量x。由于x之前的值是1,重新賦值后,x的值變成3。
a = 'ABC'時,Python解釋器干了兩件事情:
- 在內(nèi)存中創(chuàng)建了一個‘ABC'的字符串對象;
- 在內(nèi)存中創(chuàng)建了一個名為a的變量,并把它指向'ABC'。
也可以把一個變量a賦值給另一個變量b,這個操作實際上是將變量b指向變量a所指向的數(shù)據(jù),
例如下面的代碼:
a = 'Jack' b = a a = 'Tom' print(b) print(a)
最后變量b的內(nèi)容到底是'Jack'還是'Tom'?如果從數(shù)學(xué)意義上理解,就會錯誤地得出b和a相同是‘Tom'
,但實際上b的值還是'Jack ‘!
請牢記: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)。
三、常量
常量就是不變的變量,比如常用的數(shù)學(xué)常數(shù)圓周率就是一個常量。在Python
中,通常用全部大寫的變量名表示常量:
PI = 3.14159265359
但事實上,從Python
語法角度看,PI仍然是一個變量,因為Python
根本沒有任何機(jī)制保證PI不會被改變。你完全可以給PI賦值為10,不會彈出任何錯誤。所以,用全部大寫的變量名表示常量只是一個習(xí)慣上的用法。
常量通常放置在代碼的最上部,并作為全局使用。
四、總結(jié)
到此這篇關(guān)于Python中的變量與常量的文章就介紹到這了,更多相關(guān)Python變量與常量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中l(wèi)ogging包的使用總結(jié)
本篇文章給大家詳細(xì)講述了python中l(wèi)ogging包的使用的相關(guān)知識點以及原理分析,有興趣的朋友可以參考學(xué)習(xí)下。2018-02-02python中JSON數(shù)據(jù)格式的詳細(xì)使用教程
這篇文章主要給大家介紹了關(guān)于python中JSON數(shù)據(jù)格式的詳細(xì)使用,JSON是一種用于存儲和交換數(shù)據(jù)的語法,JSON是文本,使用JavaScript對象表示法編寫,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02Python隨手筆記之標(biāo)準(zhǔn)類型內(nèi)建函數(shù)
Python提供了一些內(nèi)建函數(shù)用于基本對象類型:cmp(),repr(),str(),type()和等同于repr()的(' ')操作符,本文給大家分享Python隨手筆記之標(biāo)準(zhǔn)類型內(nèi)建函數(shù),對python內(nèi)建函數(shù)相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2015-12-12快速掌握python權(quán)限功能設(shè)計實戰(zhàn)指南
在處理權(quán)限控制時,裝飾器能幫助我們以一種統(tǒng)一且簡潔的方式管理不同用戶對系統(tǒng)資源的訪問權(quán)限,本文將通過幾個簡單的示例逐步展示如何利用Python裝飾器實現(xiàn)從基礎(chǔ)到復(fù)雜的權(quán)限控制功能2024-01-01探索Python定時任務(wù)實現(xiàn)高效時間管理
這篇文章主要為大家介紹了探索Python定時任務(wù)高效實現(xiàn)高效時間管理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01python中常用檢測字符串相關(guān)函數(shù)匯總
這篇文章主要介紹了python中常用檢測字符串相關(guān)函數(shù),實例匯總了Python針對字符串?dāng)?shù)字、字母、大小寫等常用檢測函數(shù),非常具有實用價值,需要的朋友可以參考下2015-04-04Ubuntu16安裝Python3.9的實現(xiàn)步驟
這篇文章主要介紹了Ubuntu16安裝Python3.9的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12