Python中is和 的區別,以及編碼與解碼

2021-10-03 04:04:08 字數 3052 閱讀 8317

python中』=='和』is』的區別

(1)python中』==』

python中』==比較變數的值,如果值相同返回true,如果不同返回flase

這裡的變數值包含數字,字串,元組,列表,字典.

3)示例如下

>>

> a=

1>>

> b=

1>>

> a==b

true

>>

> a=

'1'>>

> b=

'1'>>

> a==b

true

>>

> a=(1

,2)>>

> b=(1

,2)>>

> a==b

true

>>

> a=[1

,2]>>

> b=[1

,2]>>

> a==b

true

>>

> a=

>>

> b=

>>

> a==b

true

>>

>

(2)python中』is』

python中』is』是比較兩個變數的id(記憶體位址)是否一致,如果是返回true,如果不是返回flase

2)id的查詢為id(變數)示例如下,其中變數之間的賦值id不變,兩個變數指向同一id,但變數與數值之間的賦值會改變id(小資料池中的例外)

>>

> a=[1

,2,3

]>>

> b=a

>>

> a is b

true

>>

>

id(a)

49562824

>>

>

id(b)

49562824

>>

> c=[1

,2,3

]>>

>

id(c)

4579080

>>

> c is b

false

>>

>

(3)擴充,python中的小資料池

1)小資料池:一種資料快取機制. 也被稱為駐留留機制,python中內建,為節省空間而存在的,只有部分數字和字串

2)(shell下)數字範圍:-5~256

示例如下

>>

> a=-6

>>

> b=-6

>>

> a is b

false

>>

> a=-5

>>

> b=-5

>>

> a is b

true

>>

> a=

256>>

> b=

256>>

> a is b

true

>>

> a=

257>>

> b=

257>>

> a is b

false

>>

>

3)(shell下)字串範圍:不含特殊符號 以及單個字元乘20以內數字,示例如下

>>

> a=

'alex@'

>>

> b=

'alex@'

>>

> a is b

false

>>

> a=

'a'*

20>>

> b=

'a'*

20>>

> a is b

true

>>

> a=

'1234567890abcdefghijklmnopqrstuvwxyz'

>>

> b=

'1234567890abcdefghijklmnopqrstuvwxyz'

>>

> a is b

true

4)idle和pycharm的小資料池不同於shell

python中編碼與解碼(python3執行階段使用unicode)

(1) ascii:

1)不支援中文

2)支援 英文,數字,字母,符號

3)編碼情況 英文:8位,1個位元組

(2) gbk 國標:

1)支援 英文,數字,字母,符號

2)編碼情況 英文:16位,2個位元組 中文:16位,2個位元組

(3) unicode 萬國碼:

1)支援 英文,數字,字母,符號

2)編碼情況 英文:32位,4個位元組 中文:32位,4個位元組

(4) utf-8長度可變萬國碼,最小8位:

1)支援 英文,數字,字母,符號

2)編碼情況 英文:8位,1個位元組 中文:24位,3個位元組

(5)bytes型別:

1)網路傳輸和儲存使用bytes

(6)解碼:

1)pycharm編碼時使用utf-8(s.encod(『utf-8』),指將s用utf-8編碼)

2)s.decode(『utf-8』)將s用utf-8解碼)`

3)用什麼編碼就用什麼解碼,否則會亂碼

>>

> a=

'你好'

>>

> b=a.encode(

'utf-8'

)>>

> c=b.decode(

'gbk'

)>>

>

print

(b)b'\xe4\xbd\xa0\xe5\xa5\xbd'

>>

>

print

(c)浣犲ソ

>>

> c=b.decode(

'utf-8'

)>>

>

print

(c)你好

Python中is和 的區別

python中的物件包含三要素 id type value。is判斷的是a物件是否就是b物件,是通過id來判斷的。也就是記憶體位址。其實本質就是判斷id a id b 當然也可以使用 判斷。但是必須是id a id b 而不是a b a 1,2,3 b 1,2,3 a is b false id a...

Python中「is」和「 」的區別

python有兩個用於相等比較的運算子,is 和 等於 在這篇文章中,我將帶你們了解python中 is 和 的區別,並通過幾個簡單地例子說明應該在什麼時候使用它們,我們先來看乙個情景 當我還是乙個孩子的時候,我們的鄰居家有兩隻雙胞胎貓。這兩隻貓看起來看起來完全一樣 同樣的木炭毛,同樣敏銳的綠眼睛。...

python中 is 和 的區別

python中的物件包含三要素 id type value 其中 id用來唯一標識乙個物件,type標識物件的型別,value是物件的值 is判斷的是a物件是否就是b物件,是通過id來判斷的 判斷的是a物件的值是否和b物件的值相等,是通過value來判斷的 最終取決於物件的 eq 方法,本質上兩個變...