1. 程式人生 > >Prthon編碼和解碼/is 和 ==

Prthon編碼和解碼/is 和 ==

+ - 特殊 方便 asc 和數 數字 aaa 單個 encode

一. is 和 == 的區別

小數據池

數字小數據池的範圍 -5 ~ 256
字符串中如果有特殊字符他們的內存地址就不一樣
字符串中單個*20以內他們的內存地址一樣,單個*21以上內存地址不一致
 1 a = disman
 2 a1 = disman
 3 print(a is a1)    # Fales
 4 
 5 n = 5//2
 6 n1 = 2
 7 print(n is n1)    #True
 8 
 9 a = a*21
10 b = a*21
11 print(a is b)
12 
13
a = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 14 b = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 15 print(a is b) 16 17 n = -6 18 n1 = -6 19 print(n is n1) #False 20 21 n = -5 22 n1 = -5 23 print(n is n1) #True 24 25 n = 257 26 n1 = 257 27 print(n is n1) #True
        總結:


== 比較 比較的倆邊的值

is 比較 比較的是內存地址 id()
二. 編碼和解碼

ascii 碼:

不支持 中文

支持 英文 數字 符號

8位 一個字節

gbk碼 國標:

支持 中文,英文,數字,符號

英文 16位 二個字節

中文 16位 二個字節


unicode 萬國碼

支持 中文,英文,數字,符號

英文 32 位 四個字節


中文 32位 四個字節


utf-8 長度可變的萬國碼 最少用8位

英文 8位 一個字節
中文 24位 三個字節


Python3中 程序運行階段 使用的是unicode 顯示所有的內容

bytes類型

傳輸和存儲都是使用bytes

pycharm 存儲的時候默認是使用utf-8

總結:

is 和 == 區別

is 比較內存地址

id() ---- 獲取內存地址

小數據池:

數字的小數據池範圍是 -5 ~ 256

字符串:

字符串中不能包含特殊符號 + - * / @ 等等
字符串單個字符*20以內內存地址都是一樣的,單個字符*21以上內存地址不一致

註意: pycharm是個坑, 一個py文件中所有相同的字符串 一般都是使用一樣的內存地址

== 比較倆邊的值

編碼和解碼

encode(編碼方式) ---- 拿到明文編碼後對應的字節

decode(編碼方式) -----將編碼後的字節解碼成對應的明文



註意: 用什麽進行編碼就要什麽進行解碼 不然後會懵逼!
python2的版本. 默認使用ASCII
python3的版本. 默認使用unicode. 在計算的時候會非常方便

在網絡傳輸和數據存儲的時候. 換gbk, utf-8(90%)
編碼(encode): unicode變成你需要的編碼
編碼之後的內容是字節(bytes類型)
解碼(decode): 把目標bytes轉換成字符串

Prthon編碼和解碼/is 和 ==