所有標準的序列操作對字符串都適用,但字符串是不可變的
字符串常量:
單引號:‘spa"m'
雙引號:"spa'm"
三引號:'''...spam...''',"""...spam..."""
轉(zhuǎn)義字符:"s/tp/na/om"
Raw字符串:r"C:/new/test.spm"
Unicode字符串:u'eggs/u0020spam
單雙引號是一樣的
單雙引號可以互換,字符常量表達式可以用兩個單引號或兩個雙引號來表示--兩種形式同樣有效返回相同類型的對象:
可以自動在任意的表達式中合并相鄰的字符串常量,盡管也可以使用+操作符實現(xiàn):
字符串的格式化使用字符%來實現(xiàn):
在%的左側(cè)放置一個字符串,右側(cè)放置希望格式化的值,可以使用一個值,也可以使用多個值的元組或字典
如果需要轉(zhuǎn)換的元組作為轉(zhuǎn)換表達式的一部分存在,那么必須將它用圓括號括起來,以免出錯
長字符串、原始字符串
1、長字符串
如果需要寫一個非常長的字符串,需要跨多行,則可以使用三個引號代替普通引號
如果一行之中最后一個字符是反斜線,那么換行符本身就“轉(zhuǎn)義”了,也就是被忽略了
2、原始字符串
原始字符串以r開頭,可以在原始字符串中放入任何字符,最后輸出的字符串包含了轉(zhuǎn)義所用的反斜線,但是不能在字符串結(jié)尾輸入反斜線:
索引與分片
字符串的字符是通過索引來提取的,將獲得在特定位置的一個字符的字符串。
Python偏移量是從0開始的,并比字符串的長度小1,還支持類似在字符串中使用負偏移這樣的方法從序列中獲取元素,負偏移認作是從結(jié)束處反向計數(shù)
當使用一對冒號分隔的偏移索引字符串這樣的序列對象時,將獲取從下邊界直到但不包括上邊界的所有元素
索引(s[i])獲取特定偏移的元素:
第一個元素的偏移為0
負偏移索引意味著從最后或右邊反向進行計數(shù)
s[0]獲取第一個元素
s[-2]獲取了倒數(shù)第二個元素
分片(s[i:j])提取對應(yīng)的部分作為一個序列:
上邊界并不包含在內(nèi)
分片的邊界默認為0和序列的長度,如果沒有給出的話
s[1:3]獲取從偏移為1的元素,直到但不包括偏移為3的元素
s[1:]獲取了從偏移為1直到末尾之間的元素
s[:3]獲取了從偏移為0直到但是不包括偏移為3之間的元素
s[:-1]獲取了從偏移為0直到但是不包括最后一個元素之間的元素
s[:]獲取了從偏移0到末尾之間的元素
擴展分片:第三個限制值
分片表達式增加了一個可選的第三個索引,用作步進X[I:J:K]表示:索引X對象中的元素,從偏移為I直到偏移為J-1,每隔K元素索引一次
字符串轉(zhuǎn)換工具
字符串代碼轉(zhuǎn)換
單個字符也可以通過將其傳給內(nèi)置的ord函數(shù)轉(zhuǎn)換為其對應(yīng)的ASCII碼,chr函數(shù)則執(zhí)行相反的操作:
字符串方法
字符串比列表的方法還要豐富很多,因為字符串從string模塊中“繼承”了很多方法,本篇文章只介紹一些特別有用的字符串方法
1、find
find方法可以在一個較長的字符串中查找一個子字符串,它返回子串所在位置的最左端索引,如果沒有找到則返回-1
這個方法可以接受可選的起始點和結(jié)束點參數(shù):
2、join
join方法是非常重要的字符串方法,它是split方法的逆方法,用來在隊列中添加元素:
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
sep.join(seq)
TypeError: sequence item 0: expected string, int found
>>> seq=['1','2','3','4','5']
>>> sep.join(seq)
'1+2+3+4+5'
>>> dirs='','usr','bin','env'
>>> '/'.join(dirs)
'/usr/bin/env'
>>> print 'C:'+'//'.join(dirs)
C:/usr/bin/env
3、lower
lower方法返回字符串的小寫字母版
4、replace
replace方法返回某字符串的所有匹配項均被替換后得到字符串
5、split
它是join的逆方法,用來將字符串分割成序列
注意:如果不提供任何分隔符,程序會把所有的空格作為分隔符
6、strip
strip方法返回去除兩側(cè)(不包含內(nèi)部)空格的字符串:
也可指定需要去除的字符,將它們列為參數(shù)即可:
注意:只會去除兩側(cè)的字符
7、translate
translate方法和replace方法一樣,可以替換字符串中的某些部分,但是和前者不同的是,translate方法只處理單個字符
|
新聞熱點
疑難解答
圖片精選