什麼叫做可變與不可變型別呢
可變型別:值改變,id不變,證明改的是原值,證明原值是可以被改變的
不可變型別:值改變,id也變了,證明是產生新的值,壓根沒有改變原值,證明原值是不可以被修改的
那麼基本型別中哪些是可變型別哪些是不可變型別呢,讓我們來一一驗證
首先是int,
當執行完後發現他的兩個id發生了改變,那麼int就是不可變型別。
x=10(id(x))
x=11 #
產生新值
print(id(x))
接著是float,當執行完後發現他的兩個id發生了改變,那麼float就是不可變型別。
=3.1(id(x))
x=3.2
print(id(x))
接著是str,當執行完後發現他的兩個id發生了改變,那麼str就是不可變型別。
x="abc"
(id(x))
x='gggg
'print(id(x))
這裡說下下,
int、float、str被設計成了不可分割的整體,不能夠被改變
下面是list型別
,我們發現當他的值改變時,他的列表list的id沒發生改變,所以
list是可變型別。
l=['aaa','
bbb','
ccc'
(id(l))
l[0]='
aaa'
(l)print(id(l))
dict也是同理,所以dict是可變型別。定義:{}內用逗號分隔開多key:value,其中value可以是任意型別,但是key必須是不可變型別
dic=(id(dic))
dic['k1
']=3333333333
#print(dic)
print(id(dic))
最後是bool,他只有true和false,你不可能把它改變,所以bool也是不可變型別。
條件
條件分為顯式布林值和隱式布林值。顯式布林值就像比較運算子,他判斷後會給你乙個布林值,當然true、false也是。
age = 18print(age > 16) #
條件判斷之後會得到乙個布林值
is_beautiful=true
print(is_beautiful)
而隱式布林值,他的所有的值都可以當成條件去用。其中0、none、空(空字串、空列表、空字典)=》代表的布林值為false,其餘都為真。
邏輯運算子
邏輯運算子就是not、and、or。
not:就是把緊跟其後的那個條件結果取反。ps:not與緊跟其後的那個條件是乙個不可分割的整體
print(not 16 > 13)print(not
true)
print(not false)
and:邏輯與,and用來鏈結左右兩個條件,兩個條件同時為true,最終結果才為真
print(true and 10 > 3)
個條件都為false的情況下,最終結果才為false
print(3 > 2 or 0)
而在優先順序上not>and>or
可變不可變型別
x 10 print id x x 11 print id x 1713078672 1713078704 值改變,id也發生了改變 驗證 int是不可變型別,所有的賦值都是產生新值 float是不可變型別 str是不可變型別 int float str三種型別的值是不可以分割的,是不可分割的整體,...
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變數可以分為兩種型別 不可變型別 數字 字串 元組 不可變集合 可變型別 列表 字典 可變集合 python所宣告的變數都以物件的形式存在,存在於機器的固定記憶體之中。可以理解為變數名為物件的指標 如宣告a 3,則a指向儲存3的空間,python通過使用計數器的方式來判斷空間的引用情況,...