1 單行字符串
 字符串可以用''或者""括起來(lái)表示。如果字符串本身包含 ',可以用" "括起來(lái)表示,比如
"I'm OK" 類(lèi)似的,如果字符串包含",我們就可以用' '括起來(lái)表示:'Learn "Python".' 如果字符串既包含'又包含"怎么辦?這個(gè)時(shí)候,就需要對(duì)字符串的某些特殊字符進(jìn)行“轉(zhuǎn)義”,Python字符用
/進(jìn)行轉(zhuǎn)義。要表示字符串Bob said "I'm OK".由于 ' 和 " 會(huì)引起歧義,因此,我們?cè)谒懊娌迦胍?/p>個(gè)
/表示這是一個(gè)普通字符,不代表字符串的起始,因此,這個(gè)字符串又可以表示為'Bob said /"I/'m OK/".' 注意:轉(zhuǎn)義字符 / 不計(jì)入字符串的內(nèi)容中。常用的轉(zhuǎn)義字符還有:
/n 表示換行 /t 表示一個(gè)制表符 // 表示 / 字符本身 如果一個(gè)字符串包含很多需要轉(zhuǎn)義的字符,對(duì)每一個(gè)字符都進(jìn)行轉(zhuǎn)義會(huì)很麻煩。為了避免這種情況,我們可以在
字符串前面加個(gè)前綴
r,表示這是一個(gè) raw 字符串,里面的字符就不需要轉(zhuǎn)義了。例如:>>> r'/(~_~)/ /(~_~)/'
但是r'...'表示法不能表示多行字符串,也不能表示包含'和"的字符串(為什么?)2 多行字符串
如果要表示多行字符串,可以用
'''...'''表示:'''Line 1
Line 2
Line 3'''
上面這個(gè)字符串的表示方法和下面的是完全一樣的:
'Line 1/nLine 2/nLine 3'
還可以在多行字符串前面添加
r,把這個(gè)多行字符串也變成一個(gè)raw字符串:r'''Python is created by "Guido".It is free and easy to learn.Let's start learn Python!'''
3 Unicode字符串
字符串還有一個(gè)編碼問(wèn)題。
因?yàn)橛?jì)算機(jī)只能處理數(shù)字,如果要處理文本,就必須先把文本轉(zhuǎn)換為數(shù)字才能處理。最早的計(jì)算機(jī)在設(shè)計(jì)時(shí)采用8
個(gè)比特(bit)作為一個(gè)字節(jié)(byte),所以,一個(gè)字節(jié)能表示的最大的整數(shù)就是255(二進(jìn)制11111111=十進(jìn)制
255),0 - 255被用來(lái)表示大小寫(xiě)英文字母、數(shù)字和一些符號(hào),這個(gè)編碼表被稱為ASCII編碼,比如大寫(xiě)字母 A 的
編碼是65,小寫(xiě)字母 z 的編碼是122。如果要表示中文,顯然一個(gè)字節(jié)是不夠的,至少需要兩個(gè)字節(jié),而且還不能
和ASCII編碼沖突,所以,中國(guó)制定了GB2312編碼,用來(lái)把中文編進(jìn)去。
類(lèi)似的,日文和韓文等其他語(yǔ)言也有這個(gè)問(wèn)題。為了統(tǒng)一所有文字的編碼,Unicode應(yīng)運(yùn)而生。Unicode把所有語(yǔ)
言都統(tǒng)一到一套編碼里,這樣就不會(huì)再有亂碼問(wèn)題了。
因?yàn)镻ython的誕生比Unicode標(biāo)準(zhǔn)發(fā)布的時(shí)間還要早,所以最早的Python只支持ASCII編碼,普通的字符串'ABC'在
Python內(nèi)部都是ASCII編碼的。Python在后來(lái)添加了對(duì)Unicode的支持,以Unicode表示的字符串用u'...'表示,比
如:
PRint u'中文'中文 注意: 不加 u ,中文就不能正常顯示。Unicode字符串除了多了一個(gè)u之外,與普通字符串沒(méi)啥區(qū)別,轉(zhuǎn)義字符和多行表示法仍然有效。
如果中文字符串在Python環(huán)境下遇到 UnicodeDecodeError,這是因?yàn)?py文件保存的格式有問(wèn)題。可以在第一行
添加注釋:
# -*- coding: utf-8 -*-
目的是告訴Python解釋器,用UTF-8編碼讀取源代碼。然后用Notepad++ 另存為... 并選擇UTF-8格式保存。
| 
 
 | 
新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注