您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Python字符串知識點有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
使用單引號或雙引號。
str方法,str(非字符串參數(shù))可將其他類型轉換成字符串。
\n:換行符,新的一行開頭。
\r:回車符,移至本行開頭。
\t:水平制表符,下一組4個空格的開始處。
\b:退格符,回退一個字符。
\’: 單引號’。
\": 雙引號’’。
字符串前加r,表示轉義符不生效,但不能以單數(shù)\結束,可以\\結束。
字符串前加u,表示以Unicode格式進行編碼,一般用在中文字符串前面,防止亂碼。
字符串前加b,表示這是一個bytes對象,可以理解為二進制字節(jié)串,是比較特殊的字符串。
三個引號(可嵌套。
在每行末尾加\。
加法將兩個字符串連接,生成新的字符串。
乘法將字符串重復n次,生成新的字符串。
通過索引查找元素,方法同列表:指定索引獲得元素、通過切片獲得元素。
獲得子串的索引,指的是在字符串中查找子串,返回匹配的第一個字符的索引。
方法index、find、rindex、rfind:
字符串中存在多個子串時:
index、find返回第一個子串的索引。
rindex,rfind返回最后一個子串的索引。
字符串中不存在子串時:
index,rindex返回ValueError。
find,rfind返回-1。
字符串的增刪改實質都是創(chuàng)建新的字符串。
字符串的比較,比較的是其ASCII值的大小。
ord(),參數(shù)是一個字符(可以是中文),返回其ASCII值(int型)。
chr(),參數(shù)是數(shù)字(int型),返回對應的字符。
==與is在字符串中無差異;==與is在列表中有差異。
通過切片方式獲得,例如:
a='abc'b=a[::-1] # 字符串反轉c =a[1:3] # 字符串截取,下標從0開始,謹記左開右閉print(a,b,c)out:abc cba bc
包含%占位符的字符串’ % 實際值 ‘包含%占位符的字符串’ % (實際值1,實際值2……)。
格式化字符串中的%為普通字符時,需要轉義為 %% 。
占位符%后面可以指定寬度和精度 例如:%6.3f 表示寬度6精度3的浮點數(shù) 。
案例:
num=3.1415926print(f'{num:.4f}') # 小數(shù)點后取3位,注意是四舍五入的out:3.1416
在{}中可以使用冒號來指定數(shù)字的表示形式。
{:d} 十進制數(shù)。
{:b} 二進制數(shù)。
{:x} 十六進制數(shù),小寫表示。
{:X} 十六進制數(shù),大寫表示。
{:f} 浮點數(shù)。
{:.2f} 小數(shù)點后取2位,四舍五入。
{:,} 千位分隔符。
{}中可以指定寬度和精度。
{:m.n}數(shù)字的表示形式。
轉化大小寫:
s.upper() 全部轉化為大寫。
s.lower() 全部轉化為小寫。
s.swapcase() 所有小寫變大寫,所有大寫變小寫。
s.capitalize() 字符串首字母大寫。
s.title() 所有單詞首字母大寫。
判斷是否大小寫:
s.isupper() 判斷是否全部為大寫。
s.islower() 判斷是否全部為小寫。
s.istitle() 判斷是否所有字符首字母大寫。
方法center,ljust,rjust:
不指定填充字符,默認為空格;若指定寬度小于字符串長度,則返回字符串本身。
s.center(字符串寬度,填充字符)。
s.ljust(字符串寬度,填充字符)。
s.rjust(字符串寬度,填充字符)。
方法zfill:
s.zfill(字符串寬度) 右對齊,左邊用0填充。
s.replace(匹配字符串,目標字符串,最大替換次數(shù)),最大替換次數(shù)也可不指定,表示無限制。
方法maketrans和translate,可以理解為密碼本編碼、解碼。
先用maketrans創(chuàng)建一個加密字典trantab。
然后s.translate(trantab)可轉成密文。
可以再做個解密字典轉回明文。
str1 = "this is string example wow!"intab = "aoeiu" # 原字符和目標字符對應outtab = "12345" # 將a轉1,o轉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!
還可以用第三個參數(shù)指定需要刪除的字符串:
str1 = "this is string example wow!"intab = "aoeiu" # 原字符和目標字符對應outtab = "12345" # 將a轉1,o轉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個方法都有參數(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)點是代碼簡潔,缺點是效率低(每次合并都會新建字符串)。
二是用join()方法:
可將元組、列表、字典(key)轉化為字符串,但它們的元素必須都是字符串,有非字符串會報錯。示例如下:
list=['abb', 'bcc', 'cdd']print(''.join(list)) # abbbcccddout:abbbcccdd
在循環(huán)體中大量合并字符串時建議用join(),經(jīng)測試比直接用+快了10倍不止。
import timedef strplus():t1 = time.time()str1 = ''for i in range(1000000):str1 += '中國人't2 = time.time()return t2 - t1def strjoin():t1 = time.time()list1 = []for i in range(1000000):list1.append('中國人')str2 = ''.join(list1)t2 = time.time()return t2 - t1print(strplus()) # 1.0035312175750732print(strjoin()) # 0.08500289916992188out:1.00353121757507320.08500289916992188
s.isidentifier():判斷字符串是否是合法的標識符。
s.isspace(): 判斷字符串是否全部由空格組成。
s.isdecimal(): 判斷字符串是否全部由十進制數(shù)組成。
s.isnumeric(): 判斷字符串是否全部由數(shù)字組成。
s.isalnum(): 判斷字符串是否僅由數(shù)字和字母組成。
s.isalpha():判斷字符串是否全部由字母組成。
strip([chars]) 缺省參數(shù)時移除頭尾的空白符(\n、\t、\r、空格),指定參數(shù)時可移除指定字符。
s.ltrip([chars]) 缺省參數(shù)時移除開頭的空白符(\n、\t、\r、空格),指定參數(shù)時可移除指定字符。
s.rtrip([chars]) 缺省參數(shù)時移除結尾的空白符(\n、\t、\r、空格),指定參數(shù)時可移除指定字符。
“Python字符串知識點有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。