ascii標準在美國建立,並且定義了大多數美國程式設計師使用的文字字串表示法。ascii定義了從0到127的字元**,並且允許每個字元儲存在乙個8位的位元組中(實際上,只
有其中的7位真正用到)。例如,ascii標準把字元'a'對映為整數值97(十六進製制中的0x61),它儲存在記憶體和檔案的乙個單個位元組中。如果想要看到這是如何工作的,
python的內建函式ord給出了乙個字元的二進位制值,並且chr針對乙個給定的整數**值
返回其字元:
>>> ord('a')
# 'a' is a byte with binary value 97 in ascii
97>>> hex(97)
'0x61'
>>> chr(97)
# binary value 97 stands for character 'a'
'a'編碼是根據乙個想要的編碼名稱,把乙個字串翻譯為其原始位元組形式
解碼是根據其編碼名稱,把乙個原始位元組串翻譯為字串形式的過程
更程式化地說,位元組和字串之間的來回轉換!
ascii是utf-8的乙個7位的子集
對於所有小於128的字元**,utf-8編碼與ascii是二進位制相容的
但是,所有這些,ascii、latin-1、utf-8以及很多其他的編碼,都被認為是unicode。
unicode可以理解為一種規範。
python的字串型別
具體來說,python語言提供了字串型別在指令碼中表示字元文字。在指令碼中所使用的字
符串型別取決於所使用的python的版本。python 2.x有一種通用的字串型別來表示二進
制資料和像ascii這樣的8位文字,還有一種特定的型別用來表示多位元組unicode文字:
str表示8位文字和二進位制資料。
unicode用來表示寬字元unicode文字。
python 2.x的兩種字串型別是不同的(unicode考慮到字元的額外大小並且支援編碼和
解碼),但是,它們的操作集大多是重疊的。python 2.x中的str字串型別用於可以用8
位位元組表示的文字,以及絕對位元組值所表示的二進位制資料。
相反,python 3.x帶有3種字串物件型別——一種用於文字資料,兩種用於二進位制數
據:str表示unicode文字(8位的和更寬的)。
bytes表示二進位制資料。
bytearray,是一種可變的bytes型別。
python 3.0中所有3種字串型別都支援類似的操作集,但是,它們都有不同的角色。
python 3.x之後關於這一修改的主要目標是,把python 2.x中常規的和unicode字串
型別合併到乙個單獨的字串型別中,以支援常規的和unicode文字:開發者想要刪除
python 2.x中的字串區分,並且讓unicode的處理更加自然。假設ascii和其他的8位文
本真的是一種簡單的unicode,這種融合聽起來很符合邏輯
在python2.6中,我們可以對簡單的文字使用str並且對文字的更高階的形式使用二進位制資料和
unicode;在python 3.0中,我們將針對任何型別的文字(簡單的和unicode)使用str,
並且針對二進位制資料使用bytes或bytearray。
沙皮狗丁編碼方法
這是乙個突如其來的拍腦袋的想法,源於這兩天看codeigniter源 的時候那個又長又臭的配置檔案,相信經常用開源軟體的朋友都見識過他們的配置檔案,常常都是幾百上千行的 apache的httpd.conf就有差不多1000行 而實際起作用的,卻只不過是十幾行。於是乙個拍腦袋的想法就出來了 為什麼不把...
特徵編碼方法 OneHotEncoding
對於一些特徵工程方面,有時會用到labelencoder和onehotencoder。一 為什麼需要這種編碼方式 在實際的機器學習的應用任務中,特徵有時候並不總是連續值,有可能是一些分類值,如性別可分為 male 和 female 如果我們用簡單的0,1代替就會有問題,因為男女之間不存在大小關係。二...
狀態機狀態編碼方法
常用的編碼有三種 二進位制編碼 gray碼 one hot編碼。另外,還可以自定義編碼,比如在高速設計中以狀態編碼作為輸出。一 二進位制編碼 順序二進位制編碼,即將狀態依次編碼為順序的二進位制數。順序二進位制編碼是最緊密的編碼,優點在於它使用的狀態向量位數最少。例如對於6 個狀態的狀態機,只需要 3...