提及python字串,你會想到什麼?是ascii,還是unicode?他們之間是如何轉換的?字串編碼和字串有什麼區別?接下來好程式設計師python教程就給大家分享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入門簡單,但企業的高要求促使越來越多的人參加培訓班系統學習並積累實戰經驗。
好程式設計師雲計算教程之Linux效能優化IO子系統
好程式設計師雲計算教程之linux效能優化io子系統,linux是乙個基於posix和unix的多使用者 多工 支援多執行緒和多cpu的作業系統,具有免費使用和自由傳播的特性。隨著開源軟體的發展以及雲計算技術的革新,linux成為雲計算人才必須要掌握的技能之一。接下來就給大家分享linux效能優化之...
好程式設計師Python教程學習入門之異常處理機制
在python無法正確處理程式時,就會發生異常 當發生異常時,我們需要捕獲它並進行處理,否則程式會終止執行。但如何處理異常呢?有哪些方法?接下來的好程式設計師python教程就給大家講解python異常處理機制。try 包含著可能引發異常的 except 則用來捕捉和處理發生的異常 else 如果t...
好的程式設計師和差的程式設計師
好的程式設計師,軟體產品質量高,問題少,維護工作量小 差的程式設計師,產品不斷地出問題,不停地修修補補 所以,專案更離不開差的程式設計師,因為問題不能沒有人解決。好的程式設計師,文件和編碼清晰,工作容易交接給其他人員 差的程式設計師,文件和編碼混亂,那堆可怕的複雜邏輯只有他自己能理解 所以,差的程式...