【python3的學習之路三】字符串和編碼
阿新 • • 發佈:2018-09-26
而且 亂碼 \n spa 結果 雙引號 gb2312 span 大小寫
字符串編碼
由於計算機是美國人發明的,因此,最早只有127個字符被編碼到計算機裏,也就是大小寫英文字母、數字和一些符號,這個編碼表被稱為ASCII編碼,比如大寫字母A的編碼是65,小寫字母z的編碼是122。
但是要處理中文顯然一個字節是不夠的,至少需要兩個字節,而且還不能和ASCII編碼沖突,所以,中國制定了GB2312編碼,用來把中文編進去。
但是全世界有上百種語言,各國有各國的標準就,會不可避免地出現沖突,結果就是,在多語言混合的文本中,顯示出來會有亂碼。因此,Unicode應運而生。Unicode把所有語言都統一到一套編碼裏,這樣就不會再有亂碼問題了。
現在,捋一捋ASCII編碼和Unicode編碼的區別:ASCII編碼是1個字節,而Unicode編碼通常是2個字節。
- 字母A用ASCII編碼是十進制的65,二進制的01000001;
- 字符0用ASCII編碼是十進制的48,二進制的00110000,註意字符’0’和整數0是不同的;
- 漢字中已經超出了ASCII編碼的範圍,用Unicode編碼是十進制的20013,二進制的01001110 00101101。
如果把ASCII編碼的A用Unicode編碼,只需要在前面補0就可以,因此,A的Unicode編碼是00000000 01000001。
Python的字符串
- 在python3中字符串是以Unicode編碼的
- 對於單個字符串的編碼,python提供了++ord()++函數獲取字符的整數表示,chr()函數把編碼轉化成對應的字符
ord(‘A‘) # 65 ord(‘中‘) # 20013 chr(66) #B chr(25991) #文
格式化
%運算符就是用來格式化字符串的。在字符串內部,%s表示用字符串替換,%d表示用整數替換,有幾個%?占位符,後面就跟幾個變量或者值,順序要對應好。如果只有一個%?,括號可以省略。
常見的占位符有:
%d 整數 %f 浮點數,可指定小數點後的精度 %e 用科學計數法格式化浮點數 %s 字符串 %x 十六進制整數
轉義字符
\(在行尾時) 續行符 \\ 反斜杠符號 \‘ 單引號\" 雙引號 \a 響鈴 \b 退格(Backspace) \e 轉義 \000 空 \n 換行 \v 縱向制表符 \t 橫向制表符 \r 回車 \f 換頁 \oyy 八進制數,yy代表的字符,例如:\o12代表換行 \xyy 十六進制數,yy代表的字符,例如:\x0a代表換行 \other 其它的字符以普通格式輸出
【python3的學習之路三】字符串和編碼