a=1,其中 a 就是變量名稱,1 就是它的值。在程序運行過程中,變量的值一般都會發(fā)生改變,內(nèi)存中會專門開辟一段空間,用來存放變量的值,而變量名將指向這個值所在的內(nèi)存空間。與變量相對的就是常量,在程序運行過程中,常量的值不會發(fā)生改變。
創(chuàng)新互聯(lián)專注于東港網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供東港營銷型網(wǎng)站建設(shè),東港網(wǎng)站制作、東港網(wǎng)頁設(shè)計、東港網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造東港網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供東港網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
變量的命名方式一般有2種:
1)變量中單詞與單詞之間使用下劃線分隔
hello_kitty='abc'
2)變量中的每個單詞的首字母大寫
helloKitty='abc'
Tip:推薦使用第一種方式~
a=1,就是一個變量的賦值過程,等號“=”左邊的值賦值給右邊的變量a,這個過程已經(jīng)包含了變量的申明和定義過程,每個變量需要先賦值再使用,變量在被賦值之后才會被創(chuàng)建。不同于其他語言,例如在C語言中,變量在被賦值前,必須先定義變量的類型,而Python不需要,可以不定義變量的類型直接賦值,Python解釋器會根據(jù)語法和操作數(shù)決定對象的類型。
String str = "abc";
char sex = 'M';
?
>>> str = 'abc'
>>> var = 1
在python中,可以對同一個變量反復(fù)賦值,且每次賦值的數(shù)據(jù)類型都不一致(type()函數(shù)查看數(shù)據(jù)類型):
>>> abc = 1
>>> type(abc)
# abc 為 int 類型
>>> abc = 1.2
>>> type(abc)
# abc為 float 類型
>>> abc = 'hello'
>>> type(abc)
# abc為 字符串 類型
內(nèi)存圖解:
程序中的一個賦值操作,例如:abc=1,在內(nèi)存中大致可以分為兩個步驟:
1)內(nèi)存中開辟一段空間用于存放值 1
2)內(nèi)存中創(chuàng)建一個變量abc,并指向 值 1
賦值完成后,若修改 abc 的值,python解釋器并不是修改變量abc指向的內(nèi)存空間中存放的值,而是重新開辟一段內(nèi)存空間,將新的值存放進(jìn)去,變量abc重新指向這段新開辟的內(nèi)存空間:
>>> abc = 1
>>> id(abc)
1465150944
>>> abc='hello kitty'
>>> id(abc)
1730859168688
注:函數(shù)id()用于查看變量的內(nèi)存地址~
示例1:
>>> a = 10
>>> b = 10
>>> id(a)
1465151232
>>> id(b)
1465151232
示例2:
>>> a = 300
>>> b = 300
>>> id(a)
1730858159920
>>> id(b)
1730858412880
如上面所說,在Python中修改變量的值并不是在對應(yīng)的內(nèi)存空間中直接修改,而是需要malloc重新分配內(nèi)存,用完之后再回收。為了提高效率,Python解釋器將小整數(shù)[-5,257)存放在小整數(shù)對象池中,即small_ints數(shù)組中。small_ints緩存了[-5,257) 之間的所有整數(shù),且在python解釋器初始化后small_ints數(shù)組就一直存在。若變量的值在[-5,257)范圍內(nèi),就直接從small_ints數(shù)組中獲取,而不需要再分配內(nèi)存空間。
小整數(shù)的范圍為[-5,257),若要修改需要通過修改python的源代碼實現(xiàn)
所以如 示例1 中所示:不同的變量,它們的值是同一個小整數(shù)時,這些變量引用的是同一個對象。若整數(shù)的值不在[-5,257) 范圍內(nèi),python解釋器會將其存放在PyIntBlock中,這里不做介紹~
多重賦值
同時為多個變量賦值,也稱鏈?zhǔn)劫x值。
a = b = c = 1 # a,b,c的值都為1
多元賦值
多個變量,多個值,逐一對應(yīng)。
a, b, c = 1, 2, 3 # a = 1,b = 2,c = 3
對換賦值
x=1; y=2
x, y = y, x # x = 2, y = 1
分解賦值
元組分解后賦值給多個變量
a, b, c = (1,2,3) # a = 1,b = 2,c = 3
s='hello'
a,b,c,d,e=s # a = 'h',b = 'e',c = 'l',d = 'l',e = 'o'
a,_,_,_,e=s # a = 'h',e = 'o',只取出開頭結(jié)尾,單個下劃線僅僅是一個有效的變量名稱,來表示某個變量是臨時的或無關(guān)緊要的(把不需要的值賦值給下劃線)
# 也可以按下列方式書寫:
a,*_,e=s
print(a,e) # a = 'h',e = 'o'
增量賦值
x += 1
Python使用引用計數(shù)來追蹤內(nèi)存中的對象。當(dāng)對象被創(chuàng)建并賦值給變量時,該對象的引用計數(shù)被設(shè)置為1。
當(dāng)對象再次被引用時,引用計數(shù)加1。引用計數(shù)也會減少(例如del 變量名或?qū)ψ兞恐匦沦x值等),當(dāng)引用計數(shù)為0是,意味著這個對象已經(jīng)沒有被使用~
del語句
del語句會刪除對象的一個引用,del語法:del obj[, obj2[, ...objN]]
執(zhí)行del x
后的兩個動作:
1)從現(xiàn)在的名稱空間中刪除x
2)x所指向的對象的引用計數(shù)減1
Python的GC模塊通過引用計數(shù)來跟蹤和回收垃圾。在引用計數(shù)的基礎(chǔ)上,還可以通過“標(biāo)記-清除”(mark and sweep)解決容器對象可能產(chǎn)生的循環(huán)引用的問題。通過“分代回收”(generation collection)以空間換取時間來進(jìn)一步提高垃圾回收的效率。
常量指在程序運行過程中不會改變的量,c語言中有專門的常量定義語法:const int a = 60; 常量定義之后就不能更改,若更改就會報錯,Python中沒有類似const這樣的修飾符,即沒有專門用于定義常量的語法,一般約定俗成 變量名以全大寫的形式來表示這是一個常量~
NAME=kitty
.................^_^