在python2中,字符串的編碼問題是使用python2必經(jīng)歷的門檻,所幸到了python3,python3從編程語言的層面就減少了很多編碼的問題,但是學(xué)習(xí)字符串編碼還是很有必要的。
因為計算機只能處理數(shù)字,如果要處理文本,就必須先把文本轉(zhuǎn)換為數(shù)字才能處理。最早的計算機在設(shè)計時采用8個比特(bit)作為一個字節(jié)(byte),所以,一個字節(jié)能表示的最大的整數(shù)就是255(二進制11111111=十進制255),0 - 255被用來表示大小寫英文字母、數(shù)字和一些符號,這種編碼方式被稱為ASCII編碼,比如大寫字母 A 的編碼是65,小寫字母 z 的編碼是122。
如果要表示中文,顯然一個字節(jié)是不夠的,至少需要兩個字節(jié),而且還不能和ASCII編碼沖突,所以,中國制定了GB2312編碼,用來把中文編進去。
類似的,日文和韓文等其他語言也有這個問題。為了統(tǒng)一所有文字的編碼,Unicode應(yīng)運而生。Unicode把所有語言都統(tǒng)一到一套編碼里,這樣就不會再有亂碼問題了。
Unicode通常用兩個字節(jié)表示一個字符,原有的英文編碼從單字節(jié)變成雙字節(jié),只需要把高字節(jié)全部填為0就可以。
在python3中,默認(rèn)使用UTF-8 Unicode來進行編碼,因此我們可以在python中輸入任意形式的Unicode字符串,都不會遇到像python2中遇到的問題(在python2中,需要顯式指明該字符串是Unicode字符串),如果沒有了解過python2,則完全可以忽略這一點,python3提供了更加簡單易懂的編碼方式。
s1 = '這是中文字符串' s2 = 'this is an English string' print(s1) print(s2)
在python3中,中文字符串和英文字符串無異。
請定義并打印中英文混合的字符串 "這是一句中英文混合的Python字符串:Hello World!"
參考答案:
s = '這是一句中英文混合的Python字符串:Hello World!'
print(s)
請驗證,完成請求
由于請求次數(shù)過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報