|
Python小白菜 2018-09-19 23:39:14 字符串,在幾乎所有Python程序中都有字符串,它的主要用途就是表示一段文本,比如著名的感嘆句“Hello,world!”.
>>>"Hello,world!" 上面兩個(gè)實(shí)例中,第一個(gè)使用雙引號(hào)將字符串括起,第二個(gè)使用單引號(hào)將字符串括起,兩者沒有任何差別。但為什么又要同時(shí)支持呢?看下面這三個(gè)實(shí)例: >>>"Let's go!" 上面第一個(gè)實(shí)例中,字符串內(nèi)包含了單引號(hào),因此不能再用單引號(hào)來括字符串,在這里字符串是‘Let’,Python解釋器不知道該如何處理s后面的字符,如果還是跟第二個(gè)實(shí)例那樣使用單引號(hào)括起整個(gè)字符串,Python解釋器會(huì)報(bào)錯(cuò)。第三個(gè)實(shí)例,字符串內(nèi)包含了雙引號(hào),因此必須使用單引號(hào)括起全部字符串。 如果一定要用單引號(hào)來括整個(gè)字符串,可以用反斜杠 對(duì)引號(hào)進(jìn)行轉(zhuǎn)義: >>> 'Let's go!' 這樣Python解釋器就知道中間的單引號(hào)也是字符串的一部分,同樣,雙引號(hào)也可以用同樣的方法處理: >>> ""hello,world!" she said"
>>> "Let's go" '"hello,world!"' 連續(xù)輸入兩個(gè)字符串,Python解釋器會(huì)自動(dòng)把它們拼接起來,合并為一個(gè)字符串。這種拼接字符串的方式并非常用。正常拼接將兩段相加就可以了 >>> "Hello," + "world!"
>>> "Hello,world!" 第一個(gè)實(shí)例是用引號(hào)括起的,Python解釋器在打印時(shí),保留了在代碼中的樣子,所以使用print()所打印出的結(jié)果,才是真正展現(xiàn)給用戶的效果。 兩種不同的方式將值轉(zhuǎn)換成字符串,可以通過使用str()和repr() 函數(shù)直接使用這兩種方式,通過下面兩個(gè)實(shí)例觀察兩者的不同: >>> print(repr("Hello,
world!"))
1、長(zhǎng)字符串 要表示跨越多行的字符串,可以使用三引號(hào)''' ... '''或三個(gè)雙引號(hào)""" ... """,這讓Python解釋器能夠識(shí)別表示字符串開始和結(jié)束的位置,字符串本身包含的單引號(hào)和雙引號(hào),不用使用反斜杠進(jìn)行轉(zhuǎn)義。 >>> print('''This is a very long string.除長(zhǎng)字符串外,常規(guī)的短字符串也可以跨行,在行尾加反斜杠即可,這種處理方式也適用于表達(dá)式和語(yǔ)句。 >>> print("hello, 2、原始字符串 在原始字符串中不會(huì)對(duì)反斜杠進(jìn)行處理,效果跟repr()函數(shù)類似,在常規(guī)字符串中,使用反斜杠可以讓字符串包含原本無法的字符,比如上面已經(jīng)出現(xiàn)的一個(gè)實(shí)例: >>> print('Hello,
world')通常情況下是可以的,但是在有些特殊情況,就不行了,比如字符串中包含了路徑C: owfile >>> print('C:
ewfile')通常使用反斜杠 對(duì)反斜杠進(jìn)行轉(zhuǎn)義就行,但如果是一個(gè)很長(zhǎng)的路徑就需要大量的反斜杠,這種情況下,就可以使用原始字符進(jìn)行處理,讓字符串的每個(gè)字符保持原樣。 >>> print(r'C: ewfile') 通過上面?zhèn)z實(shí)例能看出來,原始字符串用r''表示' '這對(duì)單引號(hào)內(nèi)的字符串,不進(jìn)行轉(zhuǎn)義。 >>> print(r'Let's go') 還有需要注意的是原始字符串不能以反斜杠結(jié)尾,因?yàn)镻ython解釋器無法判斷字符串是否到此結(jié)束 >>> print(r'This is illegal') 但如果最后一個(gè)字符必須是反斜杠,這可以這樣處理: >>> print(r'C:Program Filesooar' '\') 字符串這節(jié)太枯燥了,大體理解的差不多了,關(guān)于字符編碼,先不看了。 后面要是能用到再補(bǔ)上。 參考書籍《Python基礎(chǔ)教程(第三版)》 |
|
|