Prthon編碼和解碼/is 和 ==
阿新 • • 發佈:2019-05-14
+ - 特殊 方便 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 13a = ‘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 和 ==