1. 程式人生 > >is 和 ==的區別

is 和 ==的區別

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 和 ==的區別