本篇內(nèi)容介紹了“Python字符串知識(shí)點(diǎn)有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
目前創(chuàng)新互聯(lián)建站已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、建鄴網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
使用單引號(hào)或雙引號(hào)。
str方法,str(非字符串參數(shù))可將其他類型轉(zhuǎn)換成字符串。
\n:換行符,新的一行開頭。
\r:回車符,移至本行開頭。
\t:水平制表符,下一組4個(gè)空格的開始處。
\b:退格符,回退一個(gè)字符。
\’: 單引號(hào)’。
\": 雙引號(hào)’’。
字符串前加r,表示轉(zhuǎn)義符不生效,但不能以單數(shù)\結(jié)束,可以\\結(jié)束。
字符串前加u,表示以Unicode格式進(jìn)行編碼,一般用在中文字符串前面,防止亂碼。
字符串前加b,表示這是一個(gè)bytes對(duì)象,可以理解為二進(jìn)制字節(jié)串,是比較特殊的字符串。
三個(gè)引號(hào)(可嵌套。
在每行末尾加\。
加法將兩個(gè)字符串連接,生成新的字符串。
乘法將字符串重復(fù)n次,生成新的字符串。
通過(guò)索引查找元素,方法同列表:指定索引獲得元素、通過(guò)切片獲得元素。
獲得子串的索引,指的是在字符串中查找子串,返回匹配的第一個(gè)字符的索引。
方法index、find、rindex、rfind:
字符串中存在多個(gè)子串時(shí):
index、find返回第一個(gè)子串的索引。
rindex,rfind返回最后一個(gè)子串的索引。
字符串中不存在子串時(shí):
index,rindex返回ValueError。
find,rfind返回-1。
字符串的增刪改實(shí)質(zhì)都是創(chuàng)建新的字符串。
字符串的比較,比較的是其ASCII值的大小。
ord(),參數(shù)是一個(gè)字符(可以是中文),返回其ASCII值(int型)。
chr(),參數(shù)是數(shù)字(int型),返回對(duì)應(yīng)的字符。
==與is在字符串中無(wú)差異;==與is在列表中有差異。
通過(guò)切片方式獲得,例如:
a='abc'b=a[::-1] # 字符串反轉(zhuǎn)c =a[1:3] # 字符串截取,下標(biāo)從0開始,謹(jǐn)記左開右閉print(a,b,c)out:abc cba bc
包含%占位符的字符串’ % 實(shí)際值 ‘包含%占位符的字符串’ % (實(shí)際值1,實(shí)際值2……)。
格式化字符串中的%為普通字符時(shí),需要轉(zhuǎn)義為 %% 。
占位符%后面可以指定寬度和精度 例如:%6.3f 表示寬度6精度3的浮點(diǎn)數(shù) 。
案例:
num=3.1415926print(f'{num:.4f}') # 小數(shù)點(diǎn)后取3位,注意是四舍五入的out:3.1416
在{}中可以使用冒號(hào)來(lái)指定數(shù)字的表示形式。
{:d} 十進(jìn)制數(shù)。
{:b} 二進(jìn)制數(shù)。
{:x} 十六進(jìn)制數(shù),小寫表示。
{:X} 十六進(jìn)制數(shù),大寫表示。
{:f} 浮點(diǎn)數(shù)。
{:.2f} 小數(shù)點(diǎn)后取2位,四舍五入。
{:,} 千位分隔符。
{}中可以指定寬度和精度。
{:m.n}數(shù)字的表示形式。
轉(zhuǎn)化大小寫:
s.upper() 全部轉(zhuǎn)化為大寫。
s.lower() 全部轉(zhuǎn)化為小寫。
s.swapcase() 所有小寫變大寫,所有大寫變小寫。
s.capitalize() 字符串首字母大寫。
s.title() 所有單詞首字母大寫。
判斷是否大小寫:
s.isupper() 判斷是否全部為大寫。
s.islower() 判斷是否全部為小寫。
s.istitle() 判斷是否所有字符首字母大寫。
方法center,ljust,rjust:
不指定填充字符,默認(rèn)為空格;若指定寬度小于字符串長(zhǎng)度,則返回字符串本身。
s.center(字符串寬度,填充字符)。
s.ljust(字符串寬度,填充字符)。
s.rjust(字符串寬度,填充字符)。
方法zfill:
s.zfill(字符串寬度) 右對(duì)齊,左邊用0填充。
s.replace(匹配字符串,目標(biāo)字符串,最大替換次數(shù)),最大替換次數(shù)也可不指定,表示無(wú)限制。
方法maketrans和translate,可以理解為密碼本編碼、解碼。
先用maketrans創(chuàng)建一個(gè)加密字典trantab。
然后s.translate(trantab)可轉(zhuǎn)成密文。
可以再做個(gè)解密字典轉(zhuǎn)回明文。
str1 = "this is string example wow!"intab = "aoeiu" # 原字符和目標(biāo)字符對(duì)應(yīng)outtab = "12345" # 將a轉(zhuǎn)1,o轉(zhuǎn)2等等trantab = str1.maketrans(intab, outtab) # 加密字典trantab2 = str1.maketrans(outtab, intab) # 解密字典str2 = str1.translate(trantab)str3 = str2.translate(trantab2)print(str2)print(str3)out:th5s 4s str4ng 3x1mpl3 w2w! this is string example wow!
還可以用第三個(gè)參數(shù)指定需要?jiǎng)h除的字符串:
str1 = "this is string example wow!"intab = "aoeiu" # 原字符和目標(biāo)字符對(duì)應(yīng)outtab = "12345" # 將a轉(zhuǎn)1,o轉(zhuǎn)2等等trantab = str1.maketrans(intab, outtab,' ')trantab2 = str1.maketrans(outtab, intab)str2 = str1.translate(trantab)str3 = str2.translate(trantab2)print(str2)print(str3)out:th5s4sstr4ng3x1mpl3w2w! thisisstringexamplewow!
s.split()從左向右尋找,根據(jù)拆分符將字符串拆分,分別放入列表。
s.rsplit()從右向左尋找,根據(jù)拆分符將字符串拆分,分別放入列表。
上面2個(gè)方法都有參數(shù):(maxsplit=次數(shù),sep=‘拆分符’):
maxsplit=拆分次數(shù),sep=‘拆分符’。
s.splitlines()根據(jù)換行符\n將字符串拆分,分別放入列表:
partition(sep=‘拆分符’),rpartition(sep=‘拆分符’) ,將字符串拆分為三部分。 拆分符前面,拆分符,拆分符后面,然后將這三部分封裝成元組作為方法返回值。
s.partition(‘拆分符’) 從左邊查找拆分符,第一次出現(xiàn)的地方拆分。
s.rpartition(‘拆分符’) 從右邊查找拆分符,第一次出現(xiàn)的地方拆分。
若字符串中不存在指定的拆分符:
rpartition返回的元組中字符串三部分為: 字符串本身,空字符串,空字符串。
rpartition返回的元組中字符串三部分為: 空字符串,空字符串,字符串本身。
一是用 + 合并:
優(yōu)點(diǎn)是代碼簡(jiǎn)潔,缺點(diǎn)是效率低(每次合并都會(huì)新建字符串)。
二是用join()方法:
可將元組、列表、字典(key)轉(zhuǎn)化為字符串,但它們的元素必須都是字符串,有非字符串會(huì)報(bào)錯(cuò)。示例如下:
list=['abb', 'bcc', 'cdd']print(''.join(list)) # abbbcccddout:abbbcccdd
在循環(huán)體中大量合并字符串時(shí)建議用join(),經(jīng)測(cè)試比直接用+快了10倍不止。
import timedef strplus():t1 = time.time()str1 = ''for i in range(1000000):str1 += '中國(guó)人't2 = time.time()return t2 - t1def strjoin():t1 = time.time()list1 = []for i in range(1000000):list1.append('中國(guó)人')str2 = ''.join(list1)t2 = time.time()return t2 - t1print(strplus()) # 1.0035312175750732print(strjoin()) # 0.08500289916992188out:1.00353121757507320.08500289916992188
s.isidentifier():判斷字符串是否是合法的標(biāo)識(shí)符。
s.isspace(): 判斷字符串是否全部由空格組成。
s.isdecimal(): 判斷字符串是否全部由十進(jìn)制數(shù)組成。
s.isnumeric(): 判斷字符串是否全部由數(shù)字組成。
s.isalnum(): 判斷字符串是否僅由數(shù)字和字母組成。
s.isalpha():判斷字符串是否全部由字母組成。
strip([chars]) 缺省參數(shù)時(shí)移除頭尾的空白符(\n、\t、\r、空格),指定參數(shù)時(shí)可移除指定字符。
s.ltrip([chars]) 缺省參數(shù)時(shí)移除開頭的空白符(\n、\t、\r、空格),指定參數(shù)時(shí)可移除指定字符。
s.rtrip([chars]) 缺省參數(shù)時(shí)移除結(jié)尾的空白符(\n、\t、\r、空格),指定參數(shù)時(shí)可移除指定字符。
“Python字符串知識(shí)點(diǎn)有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!