標籤:讀檔案 預設 啟動 檔案的 python3 格式 編輯 utf-8 硬體
1.回顧:
軟體→作業系統→硬體
2.文字編輯器:
啟動:硬碟→記憶體→運行(cpu)
讀檔案:硬碟→記憶體→CPU讀
存檔案:儲存到硬碟中
3.python解譯器
啟動:硬碟→記憶體→運行(cpu)
讀檔案:硬碟→記憶體→CPU讀
(這兩階段與文字編輯器相同,但第三階段就不同了,關係到文法等問題)
解釋執行:這個階段就要在記憶體中開闢新的空間
4.字元編碼:顧名思義就是編碼字元的
①字元編碼的作用:把人能識別的字元通過一種標準翻譯成計算能識別的二進位,翻譯過程的標準就是字元編碼表
②不同的字元編碼表
ASCII
用8個位表示一個位元組bytes,共可表示2**8=256種
GBK
用2個bytes表示1個字元,共2**16種
Unicode(萬國碼)
用2個bytes表示1個字元(但是在儲存英文字元的時候就浪費空間)
UTF-8(萬國碼)
對英文存1個bytes,中文存3個bytes
5.電腦記憶體中用Unicode(速度快),硬碟中用UTF-8(佔用空間小,傳輸穩定)
6.儲存檔案過程:記憶體Unicode → encode → 硬碟UTF-8/或其他字元編碼
讀取檔案過程:硬碟UTF-8/或其他字元編碼 → decode → 記憶體Unicode
7.以上總結:
①存檔案的時候用的什麼編碼(encode)取的時候就要用什麼編碼取(decode)
②python3解譯器預設的字元編碼是UTF-8,可以更改: #coding:gbk或其他
③python2解譯器預設的字元編碼是ASCII,可以更改: #coding:uft-8或其他
8.python解譯器第三階段才用到字串,執行中遇到字串就會開闢新的記憶體空間存起來。
在python3中字串都是unicode格式的二進位存放在記憶體中,而在python2中字串都是已經encode後的結果,即bytes。
9.Unicode → encode → bytes
bytes → decode → Unicode
10.python3中有兩種形式的字串:
①.Unicode(解譯器自動控制)
②.bytes(Unicode→encode→bytes)(人為控制)
11.python2的字串有兩種:
①. str = bytes(Unicode→encode→bytes)(解譯器自動控制)
②. u‘ 字串 ‘ (相當於python3中的Unicode)
12.為什麼要有bytes:
電腦最基本的傳輸訊號就是二進位,就相當說最基本的傳輸訊號就是bytes,所以資料要傳輸就要用bytes。
python-day10--字元編碼