提及Python字符串,你會想到什麼?是ASCII,還是Unicode?他們之間是如何轉換的?字符串編碼和字符串有什麼區別?接下來千鋒小編就給大家分享杭州Python入門教程中有關字符串的知識點。
1、字符和字節
一個字符不等價於一個字節,字符是人類能夠識別的符號,可以有多種表示方法,不同的表示方法會使用不同的字節數。比如字母A-Z都可以用ASCII碼錶示(佔用一個字節),也可以用Unicode表示(佔兩個字節),還可以用UTF-8表示(佔用一個字節)。
字符編碼的作用是將人類可識別的字符轉換為機器可識別的字節碼以及反向過程。Unicode是真正的字符串,而用ASCII、UTF-8、GBK等字符編碼表示的是字節串。
2、編碼和解碼
以Unicode為例,編碼(encode)是將Unicode字符串(中的代碼點)轉換特定字符編碼對應的字節串的過程和規則;解碼(decode)是將特定字符編碼的字節串轉換為對應的Unicode字符串(中的代碼點)的過程和規則。
無論是編碼還是解碼,都需要一個重要因素,就是特定的字符編碼。因為一個字符用不同的字符編碼進行編碼後的字節值以及字節個數大部分情況下是不同的,反之亦然。
3、Python編碼轉換
Python編碼類型默認是UTF-8,Python2的默認編碼是ASCII,不能識別中文字符,需要顯式指定字符編碼;Python3的默認編碼為Unicode,可以識別中文字符。
在Python中不同編碼的轉換都要經過Unicode,不論是UTF-8或者是GBK,整個過程都是先通過編碼decode轉換為Unicode告訴Unicode當前的編碼格式是什麼、然後再通過解碼encode轉換為自己想要實現的編碼格式或類型。
4、常見編碼錯誤原因
1)Python解釋器的默認編碼
2)Python源文件文件編碼
3)Terminal使用的編碼
4)操作系統的語言設置
作為人工智能時代的最佳編程語言,Python吸引了廣泛關注,選擇學習Python的人日益增多。儘管Python入門簡單,但企業的高要求促使越來越多的人參加培訓班系統學習並積累實戰經驗。
千鋒杭州Python培訓堅持以就業為導向制定課程,由大牛講師分階段授課,面對面講解,注重學員理論知識和實戰經驗的雙重培養,打造的是企業所需、上崗即用的的Python精英人才!
閱讀更多 杭州千鋒 的文章