is 和 ==的區別
阿新 • • 發佈:2018-08-03
sci pycha pychar utf-8 解碼 字節 小數 utf false
1. is 和 == 的區別
#小數據池
# 數字小數據池的範圍 -5 ~ 256
# 字符串中如果有特殊字符他們的內存地址就不一樣
# 字符串中單個*20以內他們的內存地址一樣,單個*21以上內存地址不一致
# a = ‘aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa‘
# b = ‘aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa‘
# print(a is b) True
# n = -6
# n1 = -6
# print(n is n1) #False
# n = -5
# n1 = -5
# print(n is n1) #True
# n = 257
# n1 = 257
# print(n is n1) #False
#總結:
# == 比較 比較的倆邊的值
# is 比較 比較的是內存地址 id()
2. 編碼和解碼
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(編碼方式) ---- 將編碼後的字節解碼成對應的明文
is 和 ==的區別