== 比較兩邊的值 is 比較的是內存地址
id( ) ---- 獲取內存地址
python 小數據池中的數據內存地址是一樣的
數字: 範圍 :-5 ~ 256 (python終端可驗證,pycharm 中n = - 6 和 n1 = -6 is 運行結果爲TRUE,因爲它會自行修正)
n = -6
n1 = -6
print(n is n1) # False
字符串: 字符串中如果有特殊字符( + - * / 空格 @ 等),他們的內存地址就不一樣
a = 'alex@'
a1 = 'alex@'
print(a is a1) #False
字符串中單個*20以內他們的內存地址一樣,單個*21 以上 內存地址不一致
注意: pycharm是個坑,一個py文件中所有相同的字符串,一般都是使用一樣的內存地址
a = 'a'*20
b = 'a'*20
print( a is b) #True
a = 'a'*21
b = 'a'*21
print( a is b) #False
a = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
b = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
print(a is b) #Ture
python3 程序運行階段 使用的是unicode,顯示所有的內容, (unicode不能進行傳輸和存儲,只能在內存中)
bytes 類型 傳輸和存儲都是使用bytes 類型
pycharm 存儲的時候默認使用utf-8編碼
漢字編碼位數
utf-8 3位 gbk 2位
encode( 編碼方式 ) ---- 拿到明文編碼後對應的字節
decode( 編碼方式 ) ---- 將編碼後的字節解碼成對應的明文
用什麼方式編碼,就要用什麼方式解碼
作業講解:
循環迭代時不可改變字典大小,
解決方案: 循環迭代時記錄到list裏 ,然後迭代list,刪除對應字典元素