一.知識儲備
cpu--控制和運算
內存--暫時存儲cpu須要的數據
硬盤--永久保存數據
2.文本編輯器的原理存儲原理
1,啓動文本編輯器
2,在編輯器上輸入內容---此時輸入內容還在內存上
3,保存到硬盤
結論:在編寫py程序的時候,沒有語法的限制,編輯的結果和編寫
一個普通的文本文件沒有任何區別,只有把py程序交給python解釋器解釋
並執行的第三個階段纔有意義
3.python解釋器執行python程序的原理
python3 test.py
第一階段:先啓動python解釋器這個軟件
第二階段:把test.py文件的內容讀入內存
第三階段:解釋執行,識別語法
4.文本編輯器讀取原理
1.編輯器向操做系統發送請求
2.操做系統將數據從硬盤中取出,並在內存中加載
3.應用程序經過操做系統將內容打印出來
二.什麼是字符編碼
字符編碼就是把人類的語言翻譯爲計算機可以理解的二進制的過程
翻譯的過程遵循的原則--字符編碼表(字符與二進制數一一對應的關係)
字符編碼的發展:
ASCII 碼:只能表示英文字符,一個英文字符佔用1字節
GBK:中文定製的編碼表,2個字節表示中文,1個字節表示英文
unicode:(內存中固定的編碼)--2個字節表示一個字符
uft-8:unicode的升級版本,解決了unicode浪費內存空間的問題
1字節表示一個英文字符,3字節表示一箇中文字符
三.保證不亂碼的核心:
文件以什麼編碼存在,就必須以什麼編碼讀取
強調:咱們能夠控制的只是存在硬盤上的編碼
python3解釋器:默認utf——8編碼
python2解釋器:默認ascii編碼
文件頭的做用:
#coding:utf-8 告訴解釋器,使用我指定的字符編碼
四.執行python程序第三個階段發生的事
會識別python語法,定義的字符串類型涉及到字符編碼的概念
例子:
x='上' #x=str('上')
python2:
字符串分爲兩種形式
x='上' #python2的str類型會按照文件頭指定的編碼來存'上'
python3:
str:默認被存爲unicode
五,轉換 unicode和其餘編碼之間的轉換
unicode---編碼encode---》utf-8
utf-8---解碼decode---》unicode
python3中str是以unicode編碼形式存放的
x='你好'
x.encode('utf-8') ----> bytes類型
bytes.decode('utf-8')------------->str(unicode)字符串類型 三、bytes類型的用途: 一、存放到文件中 二、基於網絡傳輸