溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python字符串知識點有哪些

發(fā)布時間:2021-11-25 11:48:45 來源:億速云 閱讀:160 作者:iii 欄目:互聯(lián)網(wǎng)科技

本篇內(nèi)容介紹了“Python字符串知識點有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

字符串創(chuàng)建

  • 使用單引號或雙引號。

  • 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填充。

字符串的子串替換,方法replace

  • 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

以is開頭的字符串方法

  • s.isidentifier():判斷字符串是否是合法的標識符。

  • s.isspace(): 判斷字符串是否全部由空格組成。

  • s.isdecimal(): 判斷字符串是否全部由十進制數(shù)組成。

  • s.isnumeric(): 判斷字符串是否全部由數(shù)字組成。

  • s.isalnum(): 判斷字符串是否僅由數(shù)字和字母組成。

  • s.isalpha():判斷字符串是否全部由字母組成。

去除字符串空白符方法strip、lstrip、rstri.ps

  • 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)站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI