所有標準的序列操作對字符串都適用,但字符串是不可變的
字符串常量:
單引號:‘spa"m'
雙引號:"spa'm"
三引號:'''...spam...''',"""...spam..."""
轉義字符:"s/tp/na/om"
Raw字符串:r"C:/new/test.spm"
Unicode字符串:u'eggs/u0020spam
單雙引號是一樣的
單雙引號可以互換,字符常量表達式可以用兩個單引號或兩個雙引號來表示--兩種形式同樣有效返回相同類型的對象:
代碼如下:
>>> 'zxcvbn',"zxcvbn"
('zxcvbn', 'zxcvbn')
>>> #不適用轉義字符就可以實現在一個字符串中包含其余種類 的引號
>>> 'knight"s',"knight's"
('knight"s', "knight's")
可以自動在任意的表達式中合并相鄰的字符串常量,盡管也可以使用+操作符實現:
代碼如下:
>>> title="sdfsd"'dfg'"fgfd"
>>> title
'sdfsddfgfgfd'
字符串的格式化使用字符%來實現:
在%的左側放置一個字符串,右側放置希望格式化的值,可以使用一個值,也可以使用多個值的元組或字典
代碼如下:
>>> format="Hello. %s. %s enough for ya?"
>>> values=('world','Hot')
>>> print format % values
Hello. world. Hot enough for ya?
如果需要轉換的元組作為轉換表達式的一部分存在,那么必須將它用圓括號括起來,以免出錯
長字符串、原始字符串
1、長字符串
如果需要寫一個非常長的字符串,需要跨多行,則可以使用三個引號代替普通引號
代碼如下:
>>> print '''this is
a
very long
string'''
this is
a
very long
string
如果一行之中最后一個字符是反斜線,那么換行符本身就“轉義”了,也就是被忽略了
代碼如下:
>>> print "hello./
world!"
hello.world!
>>> #這個用法也適用表達式和語句
>>> 1+2+/
4+5
12
>>> print /
'hello.world'
hello.world
2、原始字符串
原始字符串以r開頭,可以在原始字符串中放入任何字符,最后輸出的字符串包含了轉義所用的反斜線,但是不能在字符串結尾輸入反斜線:
代碼如下:
>>> print /
'hello.world'
hello.world
>>> print r'Let/'s go!'
Let/'s go!
>>> print r'this is illegal/'
SyntaxError: EOL while scanning string literal
索引與分片
字符串的字符是通過索引來提取的,將獲得在特定位置的一個字符的字符串。
Python偏移量是從0開始的,并比字符串的長度小1,還支持類似在字符串中使用負偏移這樣的方法從序列中獲取元素,負偏移認作是從結束處反向計數
新聞熱點
疑難解答