python入門 可變不可變型別 邏輯運算子

2022-07-24 09:24:06 字數 1881 閱讀 4063

什麼叫做可變與不可變型別呢

可變型別:值改變,id不變,證明改的是原值,證明原值是可以被改變的

不可變型別:值改變,id也變了,證明是產生新的值,壓根沒有改變原值,證明原值是不可以被修改的

那麼基本型別中哪些是可變型別哪些是不可變型別呢,讓我們來一一驗證

首先是int,

當執行完後發現他的兩個id發生了改變,那麼int就是不可變型別。

x=10

print

(id(x))

x=11 #

產生新值

print(id(x))

接著是float,當執行完後發現他的兩個id發生了改變,那麼float就是不可變型別。

=3.1

print

(id(x))

x=3.2

print(id(x))

接著是str,當執行完後發現他的兩個id發生了改變,那麼str就是不可變型別。

x="

abc"

print

(id(x))

x='gggg

'print(id(x))

這裡說下下,

int、float、str被設計成了不可分割的整體,不能夠被改變

下面是list型別

,我們發現當他的值改變時,他的列表list的id沒發生改變,所以

list是可變型別。

l=['

aaa','

bbb','

ccc'

]print

(id(l))

l[0]='

aaa'

print

(l)print(id(l))

dict也是同理,所以dict是可變型別。定義:{}內用逗號分隔開多key:value,其中value可以是任意型別,但是key必須是不可變型別

dic=

print

(id(dic))

dic['k1

']=3333333333

#print(dic)

print(id(dic))

最後是bool,他只有true和false,你不可能把它改變,所以bool也是不可變型別。

條件

條件分為顯式布林值和隱式布林值。顯式布林值就像比較運算子,他判斷後會給你乙個布林值,當然true、false也是。

age = 18

print(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通過使用計數器的方式來判斷空間的引用情況,...