Python入門之字符串操作詳解
字符串
字符串常用操作
拼接字符串
拼接字符串需要使用‘+’運(yùn)算符可完成對(duì)多個(gè)字符串的拼接。如
str = "a"+"b"
字符串不允許直接與其他類型的數(shù)據(jù)拼接,需要將其他類型轉(zhuǎn)換為字符串才可以進(jìn)行拼接。
字符串復(fù)制
使用運(yùn)算符 * 重復(fù)輸出字符串
str = "hello world"*2 print(str)# hello worldhello world
計(jì)算字符串的長(zhǎng)度
不同的字符所占字節(jié)數(shù)不同,在python中數(shù)字、英文、小數(shù)點(diǎn)、下劃線和空格占一個(gè)字節(jié),一個(gè)漢字可能會(huì)占2~4個(gè)字節(jié),取決于采用的編碼。漢字在GBK/GB2312編碼中占2個(gè)字節(jié),在UTF-8/Unicode編碼中一般占用3個(gè)字節(jié)(或4個(gè)字節(jié))。python中默認(rèn)的編碼格式是UTF-8,即一個(gè)漢字占3個(gè)字節(jié)。python中,提供了內(nèi)置函數(shù)len()計(jì)算字符串的長(zhǎng)度,默認(rèn)情況下通過len()函數(shù)計(jì)算字符串的長(zhǎng)度時(shí),不區(qū)分英文、數(shù)字和漢字,所有字符都按照一個(gè)字符來計(jì)算
str = "hello world" len = len(str) print(len)# 11
截取字符串和獲取單個(gè)字符
通過索引 [] 獲取字符串中指定位置的字符
str = "hello world" print(str[0])# h print(str[1])# e
在 Python 中,使用語法 string[start:end],獲取字符串 string 中在 [start, end) 范圍的子字符串。注意范圍 [start, end) 包含 start,不包含 end。舉例如下:
str = "hello world" print(str[0:3])# hel print(str[:5]) # hello print(str[-3:]) # rld print(str[3:])# lo world print(str[:])# hello world
字符串包含判斷
通過關(guān)鍵字 in 檢查字符串中是否包含指定字符串
pd = "hello" in "hello world" # hello world 是否包含 hello print(pd) # True pd = "hello" not in "hello world" # hello world 是否不包含 hello print(pd) # False
常用字符串方法
把字符串的第一個(gè)字符大寫
capitalize() 方法把字符串的第一個(gè)字符大寫,示例如下:
text = 'abc' text = text.capitalize() print(text) # Abc
統(tǒng)計(jì)字符串出現(xiàn)的次數(shù)
count() 方法用于檢索指定字符串中在另一個(gè)字符串中出現(xiàn)的次數(shù),如果檢索的字符串不存在,則返回0,否則返回出現(xiàn)的次數(shù)。
text = 'abc abc' count = text.count('abc') # 2 print(count)
檢查字符串開頭
startswith() 方法用于檢索字符串是否以指定的子字符串開頭,如果是則返回True,否則返回False。
text = 'abc' pd = text.startswith('ab') print(pd)
檢查字符串結(jié)尾
endswith() 方法用于檢索字符串是否以指定的子字符串結(jié)尾,如果是則返回True,否則返回False
text = 'abc' pd = text.endswith('bc') print(pd)
大寫轉(zhuǎn)小寫
lower() 方法用于將字符串中的大寫字母轉(zhuǎn)換為小寫字符,如果字符串中沒有需要轉(zhuǎn)換的字符,則將原字符串返回。
text = 'ABC' lower = text.lower() print(lower) # abc
小寫轉(zhuǎn)大寫
upper() 方法用于將字符串中的大寫字母轉(zhuǎn)換為小寫字符,如果字符串中沒有需要轉(zhuǎn)換的字符,則將原字符串返回。
str1 = "asdfg" print(str1.upper())
大小寫翻轉(zhuǎn)
swapcase() 方法用于對(duì)字符串的大小寫字母進(jìn)行轉(zhuǎn)換,即將大寫字母轉(zhuǎn)換為小寫字母,小寫字母會(huì)轉(zhuǎn)換為大寫字母。
str1 = 'avvvv' print(str1.swapcase())
標(biāo)題化字符串
istitle() 方法檢測(cè)字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫。如果字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫則返回 True,否則返回 False.
str = "This is string example....wow!!!"; print str.istitle();
title() 方法返回"標(biāo)題化"的字符串,就是說所有單詞都是以大寫開始,其余字母均為小寫
str = "this is string example....wow!!!" print(str.title())# This Is String Example....Wow!!!
空格刪除
text = ' abcdaaa ' print(text.strip()) # 刪除開始和結(jié)尾的空格 print(text.lstrip()) # 刪除左邊的空格 print(text.rstrip()) # 刪除右邊的空格
合并字符串
合并字符串與拼接字符串不同,它可以將多個(gè)字符串采用固定的分隔符連接在一起。合并字符串可以使用字符串對(duì)象的join() 方法實(shí)現(xiàn)
text = 'abc' print(text.join("def"))
分割字符串
分割字符串是把字符串分割為列表,通過split() 函數(shù)可以實(shí)現(xiàn)字符串分割,也就是把一個(gè)字符串按照指定的分隔符切分為列表。
text = 'hello,a,v,c' print(text.split(',')) # ['hello', 'a', 'v', 'c']
將字符串按照行分割
splitlines() 按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一個(gè)包含各行作為元素的列表,如果參數(shù) keepends 為 False,不包含換行符,如果為 True,則保留換行符。
str1 = 'ab c\n1111\nde fg\rkl\r\n' print(str1.splitlines()) # ['ab c', '1111', 'de fg', 'kl']
判斷字符串只是數(shù)字
isnumeric() 方法檢測(cè)字符串是否只由數(shù)字組成。如果字符串中只包含數(shù)字字符,則返回 True,否則返回 False
str = "2009" print( str.isnumeric()) # True
判斷是空字符
isspace() 方法檢測(cè)字符串是否只由空格組成。 如果字符串中只包含空格,則返回 True,否則返回 False.
str = " "; print str.isspace();
字符串填充
zfill() 方法返回指定長(zhǎng)度的字符串,不夠的長(zhǎng)度的原字符串前面填充0。
str = "this is string example....wow!!!" print(str.zfill(40)) # 00000000this is string example....wow!!!
ljust() 方法和zfill一樣,默認(rèn)填充空白,我們可以指定填充的內(nèi)容,填充的方向是右側(cè)
str = "this is string example....wow!!!" print(str.ljust(40,'0')) # this is string example....wow!!!00000000
字符串搜索
find() 方法用于檢索是否包含指定的子字符串,如果檢索的字符串不存在責(zé)返回-1,否則返回首次出現(xiàn)該子字符串時(shí)的索引
text = 'abcdef' print(text.find("cd")) # 2
python還提供了rfind() 方法,其作用和find() 方法類似,只是從字符串右邊開始檢索。
python還提供了index() 方法同find() 方法類似,也是用于檢索是否包含指定的子字符串。只不過是用index() 方法時(shí),當(dāng)指定的字符串不存在時(shí)則會(huì)拋出異常
python還提供了rindex() 方法其作用同index() 方法類似,只是從字符串右邊開始檢索。
字符串替換
replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個(gè)參數(shù)max,則替換不超過 max 次。
參數(shù)
old – 將被替換的子字符串。
new – 新字符串,用于替換old子字符串。
max – 可選字符串, 替換不超過 max 次 (默認(rèn)最大)
str = "this is string example....wow!!! this is really string" print(str.replace("is", "was"))
格式化字符串
格式化字符串是指先制定一個(gè)模板,在這個(gè)模板中預(yù)留幾個(gè)空位,然后在根據(jù)需要填上相對(duì)應(yīng)的內(nèi)容。這些空位需要通過指定的符號(hào)標(biāo)記(也稱為占位符),而這些符號(hào)還不會(huì)顯示出來。
python中提供了如下兩種方法格式化字符串:
使用’%’ 操作符
text = 'hello %s' % 'java' print(text) # hello java text = 'hello %s %s' % ('java', 'python') print(text) # hello python world
使用字符串對(duì)象的format() 方法
在創(chuàng)建模板時(shí)需要使用’{}‘和’:’ ,指定占位符,例如:
字符串編碼轉(zhuǎn)換
Python 3.x 默認(rèn)采用 UTF-8 編碼格式,有效地解決了中文亂碼的問題。但是有些時(shí)候數(shù)據(jù)是第三方獲取的,那么我們就不能保證編碼就是UTF-8的所以我們就需要進(jìn)行編碼轉(zhuǎn)換了
編碼
encode() 方法用于將 str 類型轉(zhuǎn)換成 bytes 類型,這個(gè)過程也稱為“編碼”。str.encode([encoding="utf-8"][,errors="strict"])
注意:格式中用 [] 括起來的參數(shù)為可選參數(shù),也就是說,在使用此方法時(shí),可以使用 [] 中的參數(shù),也可以不使用。該方法各個(gè)參數(shù)的含義如表 所示。
注意:使用 encode() 方法對(duì)原字符串進(jìn)行編碼,不會(huì)直接修改原字符串,如果想修改原字符串,需要重新賦值。
str = "中文網(wǎng)" encode = str.encode('utf-8') # 返回的類型為bytes print(encode) # b'\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x91'
解碼
和 encode() 方法正好相反,decode() 方法用于將 bytes 類型的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為 str 類型,這個(gè)過程也稱為“解碼”。bytes.decode([encoding="utf-8"][,errors="strict"])該方法中各參數(shù)的含義如表所示。
str = "中文網(wǎng)" encode = str.encode('utf-8') decode = encode.decode('utf-8') print(decode) # 中文網(wǎng)
以上就是Python入門之字符串操作詳解的詳細(xì)內(nèi)容,更多關(guān)于Python字符串操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python?NLP開發(fā)之實(shí)現(xiàn)聊天機(jī)器人
這篇文章主要為大家介紹了Python如何實(shí)現(xiàn)聊天機(jī)器人,即使用自然語言處理?(NLP)?來幫助用戶通過文本、圖形或語音與?Web?服務(wù)或應(yīng)用進(jìn)行交互,感興趣的可以了解一下2023-05-05Python3.9.0 a1安裝pygame出錯(cuò)解決全過程(小結(jié))
這篇文章主要介紹了Python3.9.0 a1安裝pygame出錯(cuò)解決全過程(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02解決python3運(yùn)行selenium下HTMLTestRunner報(bào)錯(cuò)的問題
今天小編就為大家分享一篇解決python3運(yùn)行selenium下HTMLTestRunner報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12Python?nonlocal關(guān)鍵字?與?global?關(guān)鍵字解析
這篇文章主要介紹了Python?nonlocal關(guān)鍵字?與?global?關(guān)鍵字解析,nonlocal關(guān)鍵字用來在函數(shù)或其他作用域中使用外層變量,global關(guān)鍵字用來在函數(shù)或其他局部作用域中使用全局變量,更多香瓜內(nèi)容需要的小伙伴可以參考一下2022-03-03python 定義給定初值或長(zhǎng)度的list方法
今天小編就為大家分享一篇python 定義給定初值或長(zhǎng)度的list方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06mac系統(tǒng)下安裝pycharm、永久激活、中文漢化詳細(xì)教程
這篇文章主要介紹了mac系統(tǒng)下安裝pycharm、永久激活、中文漢化詳細(xì)教程,需要的朋友可以參考下2020-11-11詳解Selenium如何使用input標(biāo)簽上傳文件完整流程
這篇文章主要介紹了詳解Selenium如何使用input標(biāo)簽上傳文件完整流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05