字符串 :在python中是作為序列存在的,序列中的元素具有從左到右的順序,并根據(jù)他們的相對(duì)位置進(jìn)行讀取和儲(chǔ)存。嚴(yán)格意義來說,字符串是一系列單個(gè)字符組成的序列,其他類型的序列還包括列表和元組。在一串字符兩側(cè)加上雙引號(hào)或者單引號(hào)即可創(chuàng)建字符串。
為集安等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及集安網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、集安網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
注意 :如果字符串中需要出現(xiàn)雙引號(hào)或者單引號(hào),則有兩種方法。
1)使用轉(zhuǎn)義字符(\)進(jìn)行轉(zhuǎn)義。
2)將雙引號(hào)和單引號(hào)配合使用,即若向想打印單引號(hào),可以使用雙引號(hào)表示字符串,在字符串中只用一個(gè)單引號(hào)。反之亦然。
在一個(gè)字符串前面加上r;則會(huì)自動(dòng)為字符串中的反斜杠\轉(zhuǎn)義,使其只代表一個(gè)反斜杠\。但是注意,原始字符串最后不能有反斜杠\,否則會(huì)發(fā)生語法錯(cuò)誤。如果非要在原始字符串最后加上,則可以寫為\。
運(yùn)行結(jié)果為:
有時(shí)我們需要?jiǎng)?chuàng)建一個(gè)跨行的字符串,則可以使用三引號(hào)來創(chuàng)建。
運(yùn)行結(jié)果為
1)可以通過len()函數(shù)得到序列的長度。
運(yùn)行結(jié)果為:
2)可以通過索引操作得到序列的各個(gè)元素值。python中序列的索引是從0開始依次向后推移。
運(yùn)行結(jié)果為:
3)python還支持反向索引,是從最后一個(gè)向前推移的。-1是指序列中的最后一個(gè)元素值,-len(str)是指該序列的第一個(gè)元素值。
運(yùn)行結(jié)果為:
4)序列還支持一種 分片(slice) 的操作,這是一種能夠一步提取整個(gè)分片的方法。
分片可以看作是字符串中一部提取出其中一部分的方法。其一般形式為:X[I:J],表示從X序列中取出第I個(gè)元素到不包含第J個(gè)元素的部分,結(jié)果為返回一個(gè)新的對(duì)象。
運(yùn)行結(jié)果為:
在一個(gè)分片(slice)中,左邊界默認(rèn)為0。同時(shí)應(yīng)注意負(fù)偏移量在分片中的邊界,也應(yīng)為左側(cè)數(shù)字比右側(cè)數(shù)字小??截惾孔址挠梅閟tr[:]。
運(yùn)行結(jié)果為:
5)作為一個(gè)序列,字符串還支持用“+”來合并字符串。
運(yùn)行結(jié)果為:
6) 不可變性 ,python中字符串具有不可變性,在創(chuàng)建一個(gè)字符串之后不可以通過對(duì)其某一位置進(jìn)行賦值而改變?cè)撟址梢酝ㄟ^創(chuàng)建一個(gè)新的字符串并以同一個(gè)變量名命名。
運(yùn)行結(jié)果為:
7)除了一般的序列操作,字符串還有一些其特有的操作方法。
如find()方法,可以用于查找一個(gè)子字符串,可以返回該子字符串的索引值。但如果存在多個(gè)符合的子字符串,只會(huì)返回第一個(gè)索引值。如果不存在該子字符串,則返回-1。replace(S1,S2)方法會(huì)將字符串中的S1替換為S2。
運(yùn)行結(jié)果如下:
關(guān)于字符串,python還有許多內(nèi)置函數(shù),可以通過調(diào)用dir()函數(shù)來查看。
1、python處理字符串非常簡單,獲取url最后一個(gè)/之后的字符串,使用字符串函數(shù)rindex得到最后一個(gè)/位置,然后再對(duì)url字符串進(jìn)行切片就可以得到url最后一個(gè)/后的字符串
2、代碼:
url = ''
ri = url.rindex('/')
ss = url[ri + 1:]
print(ss)
3、輸出果:
1242758094522051179.html
4、函數(shù)說明:
rindex(...)
S.rindex(sub[,
start[,
end]])
-
int
從字符串右則查找指字符串,sub要查找了內(nèi)容,start起始位置,end結(jié)束位置,函數(shù)返回位置。
5、字符串切片說明:
str[start:end]
獲取字符串以start開始位置end位置之前的字符結(jié)束的字符,如果start為空為從字符串起始開始,如果end為空則到字符串末尾。以示例中代碼為例url[ri
+
1:]就是取url中ri+1位置到url結(jié)尾的子字符串。
在日常項(xiàng)目中,我們經(jīng)常會(huì)使用python從字符串中提取我們想要的信息,以下是各種提取信息方法的總結(jié)。
格式: str[beg:end:step]
描述: 字符串[開始索引:結(jié)束索引:步長]切取字符串為開始索引到結(jié)束索引-1內(nèi)的字符串步長不指定時(shí)步長為1
舉例:
print(str[::2]) //::這里表示整個(gè)字符串,每兩個(gè)位置提取一個(gè)
print(str[1:3]) //提取第2個(gè)到第3個(gè)
print(str[2::]) //截取2 - 末尾的字符
本小節(jié)介紹了,處理字符串經(jīng)常用到的一些函數(shù)方法。
語法: str.find(str, beg=0, end=len(string))
描述: Python find() 方法檢測(cè)字符串中是否包含子字符串 str ,如果指定 beg(開始) 和 end(結(jié)束) 范圍,則檢查是否包含在指定范圍內(nèi),如果包含子字符串返回開始的索引值,否則返回-1。
語法: str.split(str="", num=string.count(str)).
描述: Python split() 通過指定分隔符對(duì)字符串進(jìn)行切片,如果參數(shù) num 有指定值,則分隔 num+1 個(gè)子字符串.返回分割后的字符串列表,該方法可以講字符串轉(zhuǎn)化為列表處理。
另外的: str.splitlines([keepends])按照行('\r', '\r\n', \n')分隔,返回一個(gè)包含各行作為元素的列表,如果參數(shù) keepends 為 False,不包含換行符,如果為 True,則保留換行符。
語法: str.partition(str)
描述: partition() 方法用來根據(jù)指定的分隔符將字符串進(jìn)行分割。如果字符串包含指定的分隔符,則返回一個(gè)3元的元組,第一個(gè)為分隔符左邊的子串,第二個(gè)為分隔符本身,第三個(gè)為分隔符右邊的子串。
語法: str.replace(old, new, max)
描述: Python replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個(gè)參數(shù)max,則替換不超過 max 次。
語法: str.strip([chars]);
描述: Python strip() 方法用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)或字符序列。:該方法只能刪除開頭或是結(jié)尾的字符,不能刪除中間部分的字符。
語法: str.join(sequence)
描述: Python join() 方法用于將序列中的元素以指定的字符連接生成一個(gè)新的字符串。
上述方法還有其變形,如str.rfind(),這代表從字符串右邊開始處理,正常是從左邊開始處理。下表是其它常用的python字符串自帶函數(shù)方法。
正則表達(dá)式是一個(gè)特殊的字符序列,它能幫助你方便的檢查一個(gè)字符串是否與某種模式匹配。本小節(jié)主要介紹Python中常用的正則表達(dá)式處理函數(shù)和正則表達(dá)式的書寫規(guī)則。
re 模塊使 Python 語言擁有全部的正則表達(dá)式功能。所以在python中使用正則表達(dá)式處理函數(shù)需要import re
語法: re.search(pattern, string, flags=0)
描述: re.search 掃描整個(gè)字符串并返回第一個(gè)成功的匹配。匹配成功re.search方法返回一個(gè)匹配的對(duì)象,否則返回None。
語法: re.sub(pattern, repl, string, count=0, flags=0)
描述: Python 的 re 模塊提供了re.sub用于替換字符串中的匹配項(xiàng)。
語法: pattern.findall(string, pos, endpos)
描述: 在字符串中找到正則表達(dá)式所匹配的所有子串,并返回一個(gè)列表,如果沒有找到匹配的,則返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。
模式字符串使用特殊的語法來表示一個(gè)正則表達(dá)式: