編程學習總結python之路之字符編碼(改進版1)(圖)

編程學習總結python之路之字符編碼(改進版1)(圖)
1.什麼是字符編碼:
計算機是基於電工做的(產生高低電平),人們根據高低電平從邏輯的角度使高電平表明1,低電平表明0 ,因此機器語言的二進制編碼是計算機所能直接認知的(無需轉換),而不管是彙編語言仍是高級語言它們的字符都須要根據某種映射關係使字符變成計算機所能理解的數字,這一過程就是字符編碼
字符  -------------(根據字符編碼表)---------->數字
2:爲何要有字符編碼?
對於計算機,是將人類所寫的字符轉換爲計算機所能理解的二進制數字,提供計算機使用
對於人類,是將計算機內存儲的二進制轉換爲人類所能直觀理解的字符,提供人類使用
編碼表發展
3.1 最初的字符編碼表
計算機是美國人發明的,美國人使用的英文字符,加上符號字符,有一百多種,而一位二進制所表明的狀態爲兩種,因此美國人用8位二進制數(256種狀態)來映射字符到數字的對應關係(第八位用於擴展,後來也加拉丁文寫入),這個編碼表就是ASCLL碼  --->一個字符用八個bit表示,即一個字節html

編程學習總結python之路之字符編碼(改進版1)(圖)

3.2 各國編碼表的誕生
隨着計算機在世界的普及,各國人發現ASCLL碼並無將本身國家的語言字符歸入映射關係中,並且8位的二進制所能表明的狀態也遠遠不夠,因此出現了中國的GBK,以16位二進制數表明一箇中文字符,8位表明一個英文字符(區分中文英文則靠高字節,連續兩個高字節即爲中文),以及Shift_JIS編碼(日本),Euc-kr編碼(韓國)
3.3 unicode的誕生
各國碼的誕生解決了本身國家的問題,可是用中國GBK編碼寫出來的軟件美國能使用嗎?爲何?
3.3.1 與程序運行有關的三大硬件:cpu,內存,硬盤
3.3.2  如何運行python程序?  
1.python解釋器從硬盤加載到內存中 
2.存儲python的文本文件從硬盤加載到內存中
3.python解釋器執行python語句(也只有這一階段涉及到語法的概念)
3.3.3 在這個階段,將字符寫到硬盤的過程:字符  --根據GBK/-Shift_JIS/-Euc-kr->內存(臨時存儲這些格式的二進制)---->硬盤中(這些格式的二進制)
那麼,對於根據GBK寫入的數據,依照ASCLL是沒法完成從內存二進制到字符轉換過程的,由此誕生了unicode一個包含unicode二進制對應-------->字符<-----各國編碼二進制對應的映射表(這是unicode必須擁有的特色,用於解決歷史問題),另外一個特色就是兼容萬國,將全部國家的字符歸入映射關係(用於統一,但這要時間)  ------->unicode用2個bytes表示全部字符,也固定了內存中使用的就是unicode字符編碼
3.4:utf-8的誕生
因爲unicode是用2個bytes表示任何字符的(英文字符前八位所有補零),對於通篇的英文字符來講,多餘的I/O操做使傳輸速度變慢,再者內存資源的浪費,因此出現了utf-8(unicode transfoemation format),採用一個字節表示英文字符,三個字節表示中文字符(生僻字可能更多)...
展望:對於舊的軟件(用各國編碼標準編寫的)---->用unicode所包含的unicode二進制  ----->字符 <-------各國編碼二進制的映射關係解決亂碼問題,對於新程序統一用utf-8字符編碼格式寫入硬盤,待舊程序再也不使用後,內存中使用utf-8編碼,這時亂碼問題再也不存在,並且,從內存到硬盤中,直接能夠將utf-8格式的二進制寫入硬盤(無需轉換)
幾年前Python仍是一門小衆語言,可是近幾年Python的百度搜索指數成指數級上升特別是從13年發佈Python3.x後,穆斯林的葬禮讀後感(http://www.simayi.net/duhougan/6675.html),因爲其出色的兼容性和易學性,讓其在17下半年至今的百度搜索指數甚至超過了Java。    
16年開始人工智能大火,甚至人們都在考慮人工智能代替人類的倫理問題,而人工智能和機器學習最重要的Python天然也成了人們熱烈討論的對象。Python火熱在於它不單單能夠用於人工智能,在更早的雲計算最火的時候最著名的雲計算開源平臺 OpenStack也是基於 Python 開發的。
一條蟒蛇吞了吉多·範羅蘇姆,並說誰纔是真正的吉多·範羅蘇姆。
由此反應出Python3.x相比與Python2.x太優秀,以致於人們懷疑兩個版本是否是都出自吉多·範羅蘇姆之手
「Python不須要殺手級別的應用,由於那樣的話,Python在其餘方面的做用就被忽略了。」 吉多·範羅蘇姆曾經這樣說。所以看出Python不只在人工智能大數據方面,網絡爬蟲、數據分析、AI、機器學習、Web 開發、金融、運維、測試等多個領域都有不俗的表現,歷來沒有哪種語言能夠同時在這麼多領域紮根。python

相關文章
相關標籤/搜索