1. 程式人生 > >python學習之路--day07

python學習之路--day07

1. 計算機系統分為三層:

應用軟體
作業系統
硬體

2.
文字編輯器讀一個檔案的三個過程:
1. 先啟動文字編輯器
2. 檔案編輯器會將檔案內容讀入記憶體
3. 將讀入記憶體的內容顯示到螢幕上

Cpython直譯器執行一個py檔案的三個過程:
1. 先啟動python直譯器
2. python直譯器會將py檔案的內容當中普通的文字內容讀入記憶體
3. 開始解釋執行剛剛讀入記憶體的程式碼,識別python語法


3. 字元編碼
字元編碼指的是字元轉換成/編碼成數字
編碼的過程一定要遵循一個標準,該標準稱之為字元編碼表

字元--------編碼--------》數字
字元《--------解碼--------數字

 

1. ASCII表:只能識別英文字元,用8bit對應一個英文字元
1個英文字元====>1Bytes


2. GBK表:可以識別中文字元、英文字元,用8bit對應一個英文字元,用16個bit對應一箇中文字元
 1個英文字元====>1Bytes
 1箇中文字元====>2Bytes


3. unicode(記憶體中預設使用該編碼):用2Bytes表示一個字元
 1. 可以識別萬國字元
 2. 與各種字元編碼的二進位制數字都有對應關係


4. utf-8全稱Unicode Transformation Format:
 1個英文字元====>1Bytes
 1箇中文字元====>3Bytes

 

 結論:
1、 編碼與解碼
字元--------編碼--------》數字
字元《--------解碼--------數字

unicode二進位制========編碼========》utf-8二進位制
unicode二進位制《=======解碼=========utf-8二進位制


2. 記憶體中固定使用unicode編碼,我們可以改變的是資料由記憶體刷到硬碟時採用的編碼(應該採用utf-8)
 unicode的特點:
 1. 可以識別萬國字元
 2. 與各種字元編碼的二進位制數字都有對應關係


3. 解決亂碼問題的核心:
 1. 字元當初以什麼編碼存的,就應該以什麼編碼去讀
 2. 保證執行python程式的前兩個階段不亂碼的解決方案:新增檔案頭
 在檔案首行新增#coding:檔案當初存的字元編碼

 

4. python直譯器預設的編碼
 python3:預設utf-8
 python2:預設ASCII

 

5.
 python3的字串型別在記憶體中存成unicode格式的二進位制