1、定義
字符串:在python中是作為序列存在的,序列中的元素具有從左到右的順序,并根據(jù)他們的相對位置進行讀取和儲存。嚴格意義來說,字符串是一系列單個字符組成的序列,其他類型的序列還包括列表和元組。在一串字符兩側(cè)加上雙引號或者單引號即可創(chuàng)建字符串。
注意:如果字符串中需要出現(xiàn)雙引號或者單引號,則有兩種方法。
1)使用轉(zhuǎn)義字符(\)進行轉(zhuǎn)義。
2)將雙引號和單引號配合使用,即若向想打印單引號,可以使用雙引號表示字符串,在字符串中只用一個單引號。反之亦然。
2、原始字符串
在一個字符串前面加上r;則會自動為字符串中的反斜杠\轉(zhuǎn)義,使其只代表一個反斜杠\。但是注意,原始字符串最后不能有反斜杠\,否則會發(fā)生語法錯誤。如果非要在原始字符串最后加上,則可以寫為\。
str = r'p\yt\h\o\n'
print(str)
str = r'p\yt\h\on\\'
print(str)
運行結(jié)果為:
p\yt\h\o\n
p\yt\h\on\
3、多行字符串
有時我們需要創(chuàng)建一個跨行的字符串,則可以使用三引號來創(chuàng)建。
str = """床前明月光
疑是地上霜
舉頭望明月
低頭思故鄉(xiāng)"""
print(str)
運行結(jié)果為
床前明月光
疑是地上霜
舉頭望明月
低頭思故鄉(xiāng)
4、字符串的操作
1)可以通過len()函數(shù)得到序列的長度。
str = 'python'
print(len(str))
運行結(jié)果為:
6
2)可以通過索引操作得到序列的各個元素值。python中序列的索引是從0開始依次向后推移。
print(str[3])
運行結(jié)果為:
h
3)python還支持反向索引,是從最后一個向前推移的。-1是指序列中的最后一個元素值,-len(str)是指該序列的第一個元素值。
print(str[-1])
print(str[-6])
運行結(jié)果為:
n
p
4)序列還支持一種分片(slice)的操作,這是一種能夠一步提取整個分片的方法。
分片可以看作是字符串中一部提取出其中一部分的方法。其一般形式為:X[I:J],表示從X序列中取出第I個元素到不包含第J個元素的部分,結(jié)果為返回一個新的對象。
print(str[1:3])
運行結(jié)果為:
py
在一個分片(slice)中,左邊界默認為0。同時應注意負偏移量在分片中的邊界,也應為左側(cè)數(shù)字比右側(cè)數(shù)字小??截惾孔址挠梅閟tr[:]。
print(str[:3])
print(str[:])
運行結(jié)果為:
pyt
python
5)作為一個序列,字符串還支持用“+”來合并字符串。
str = 'pyt' + 'hon'
print(str)
運行結(jié)果為:
python
6)不可變性,python中字符串具有不可變性,在創(chuàng)建一個字符串之后不可以通過對其某一位置進行賦值而改變該字符串,但可以通過創(chuàng)建一個新的字符串并以同一個變量名命名。
str = 'python'
str[1] = 'z'
運行結(jié)果為:
Traceback (most recent call last):
File "E:/Python/test/test2.py", line 2, in <module>
str[1] = 'z'
TypeError: 'str' object does not support item assignment
7)除了一般的序列操作,字符串還有一些其特有的操作方法。
如find()方法,可以用于查找一個子字符串,可以返回該子字符串的索引值。但如果存在多個符合的子字符串,只會返回第一個索引值。如果不存在該子字符串,則返回-1。replace(S1,S2)方法會將字符串中的S1替換為S2。
str = 'python'
str.find('t')
str.replace('t','py')
運行結(jié)果如下:
2
pypyhon
關(guān)于字符串,python還有許多內(nèi)置函數(shù),可以通過調(diào)用dir()函數(shù)來查看。