標籤:編寫 == ascii 檔案中 底線 檔案的 情況下 小數 儲存
is 和 == 的區別
is 比較的是記憶體位址
== 比較的是值
id(變數) 返回給你這個變數的記憶體位址
例子:s="周杰倫"
s1=s
print(id(s),id(s1))
特殊的: lst1=[1,4,7]
lst2=[1,4,7]
lst1.append("小白")
print(lst1,lst2)
print(id(lst1),id(lst2)) #記憶體位址不同
小資料池(常量池): 把我們使用過的值儲存在小資料池中.供其他的變數使用.
小資料池給數字和字串使用, 其他資料類型不存在.
對於數字: -5~256是會被加到小資料池中的. 每次使用都是同一個對象.
對於字串:
1. 如果是純文字資訊和底線. 那麼這個對象會被添加到小資料池.
2. 如果是帶有特殊字元的. 那麼不會被添加到小資料池. 每次都是新的.
3. 如果是單一字母*n的情況. ‘a‘*20, 在20個單位內是可以的. 超過20個單位就不會添加到小資料池中.
注意(一般情況下): 在py檔案中. 如果你只是單純的定義一個字串. 那麼一般情況下都是會
被添加到小資料池中的. 我們可以這樣認為: 在使用字串的時候, python會幫我們把字串
進行緩衝, 在下次使用的時候直接指向這個字串即可. 可以節省很多記憶體.
編碼
ASCII 8bit 1byte 英文小寫大寫字母,特殊字元,數字
GBK 16bit 2byte 中文 相容ASCII
UNICODE 32bit 4byte 萬國碼 占空間
UTF-8 UNICODE升級版 英文 1byte 中文 3byte
1. python2中預設使用的是ASCII碼. 所以不支援中文. 如果需要在Python2中更改編碼,需要在檔案的開始編寫:# -*- encoding:utf-8 -*-
2. python3中:記憶體中使用的是unicode碼
傳輸過程中用UTF-8或者GBK.
記憶體中,程式啟動並執行過程中,編碼是UNICODE.
在程式中,字串可以編碼成bytes類型的資料.
編碼encode
編碼之後的結果和原來的結果其實是一樣的,只是看著不一樣.
python基礎-06