可變型別:值改變,id不變,證明改的是原值,證明原值是可以被改變的不可變型別:值改變,id也變了,證明是產生新的值,壓根沒有改變原值,證明原值是不可以被修改的
x =
10print(id
(x))
x =11
print(id
(x))
將x的值修改後,原值「10」無法被改變,在記憶體中建立新的位址儲存「11」,並修改x的記憶體位址,故int是不可變型別。
x=
3.1print(id
(x))
x=3.2
print(id
(x))
將x的值修改後,原值「31.」無法被改變,在記憶體中建立新的位址儲存「3.2」,並修改x的記憶體位址(id),故意float是不可變型別。
x=
"程式猿過家家"
print(id
(x))
x='謝晨'
print(id
(x))
將x的值修改後,原值「程式猿過家家」無法被改變,在記憶體中建立新的位址儲存「謝晨」,並修改x的記憶體位址(id),故str是不可變型別。
l=
['aaa'
,'bbb'
,'ccc'
]print(id
(l))l[0
]='aaa'
print
(l)print(id
(l))
將l當中值「aaa」修改後,l的記憶體位址並沒有發生變化,變化的是l[0]指向的記憶體位址,故list是可變型別。
dic=
print(id
(dic)
)dic[
'k1']=
333print(id
(dic)
)
將dic當中鍵『k1』的值修改為333後,dic指向的記憶體位址並沒有沒有發生,變化的是dic[k1]指向的記憶體位址,故dict是可變型別。
b =
true
print(id
(b))
b =false
print(id
(b))
將b的修改後,原值無法被改變,在記憶體中建立新的位址儲存「謝晨」,並修改b的記憶體位址(id),故bool是不可變型別。
總結:int、float、str、bool被設計成了不可分割的整體,不能夠被改變,共性是他們的值都唯一。
list、dict被設計成了不可變型別,他們可以由多個值組成。
python可變型別與不可變型別
學習版本3.5.2 python的基礎型別數值 字串和元組都是不可變型別,列表和字典時可變型別 1.number 字串 id 1 4297546560 id 2 4297546592 a 1 id a 4297546560 a 2 id a 4297546592 b 1 id b 429754656...
python可變型別與不可變型別
不可變資料型別在第一次宣告賦值的時候,會在記憶體中開闢一塊空間,用來存放這個變數被賦的值,而這個變數實際上儲存的,並不是被賦予的這個值,而是存放這個值所在空間的記憶體位址,通過這個位址,變數就可以在記憶體中取出資料了.所謂不可變就是說,我們不能改變這個資料在記憶體中的值,所以當我們改變這個變數的賦值...
Python可變型別與不可變型別
可變型別 可以通過一些操作來改變自身的值。例如 列表是一種可變型別,我們可以通過索引來改變的值 通過呼叫方法改變他的值 通過del關鍵字來改變他的值。不可變的型別 不能通過這些操作來改變他的值。例如 字串是一種不可變的型別,不能通過索引來改變他的值 呼叫字串的方法會返回乙個新的字串,並不改變原來的值...