字符串的基本特點
- 不可變的可迭代可索引對象
- 是由一個個字符組成的有序的序列屎即,是字符的集合
字符串的初始化
- sName = 'string'
- sName = "string"
- sName = ''' string ''' (多行字符串进每,可以用來作為多行注釋)
- sName = str(object):使用str()轉換為字符串類型
- 將object直接轉換成字符串類型而不是采用可迭代的方式
- sName = ''.join(iterable) :使用可迭代對象新建字符串(可迭代對象的元素都是字符串類型)
- 在字符串內可以使用轉義字符
字符串的訪問
-
str[index]
:支持索引訪問,注意空白符的占位 - 有序的字符集合折柠,可以順序訪問,返回的每一個元素也是字符串類型
- 可迭代對象 :
lst = list(string)
可迭代不一定可索引
字符串的常用方法
- 字符串join連接
-
"string".join(iterable)
:將一個可迭代對象中的所有元素使用string連接起來- 返回值是一個新字符串
- 要求可迭代對象的元素都是字符串類型
-
- 字符串拼接
-
str1 + str2
:拼接兩個字符串- 返回一個新的字符串
-
- 字符串分割 (split 系列)
-
str.split(sep='' , maxsplit=-1)
:將字符串按指定分隔符分割- 返回為列表
- sep 指定分隔符辛臊,默認是使用 空白字符串(可以是多個空白符一起) 作為分隔符
- 可以指定最大分割次數(默認是全部分割)
- 方向是從左到右
- 在分隔符前沒有內容:會返回一個空字符串
-
str.rsplit(sep='' , maxsplit=-1)
:將字符串按指定分隔符分割- 返回為列表
- sep 指定分隔符娱据,默認是使用 空白字符串(可以是多個空白符一起) 作為分隔符
- 可以指定最大分割次數(默認是全部分割)
- 從右到左的順序
-
str.splitlines([keepends])
:按照行來分割字符串- 返回為列表
- keepends 參數(bool類型)表示是否保留行分隔符
- 行分隔符包括:
\r、\n膏斤、\r\n
-
- 字符串分割 (partition系列)
-
str.partition(sep)
:按照sep指定的分隔符將str分割成兩部分- 返回的是一個元祖類型
- 必須指定分隔符徐绑,并且不能為空
- 遇到第一個分隔符,就將字符串分割為 頭莫辨、分隔符傲茄、尾構成的三元組,后面的忽略
- 沒有遇到分隔符沮榜,返回由字符串盘榨、空白、空白構成的三元組
- 從左到右的順序
-
str.rpartition(sep)
:同上蟆融,反向而已
-
- 字符串大小寫
-
str.upper()
:小寫字符轉大寫 -
str.lower()
:大寫字符轉小寫 -
str.swapcase()
:大小寫互相轉換
-
- 字符串排版
-
str.title()
: 單詞的首字母大寫- 返回一個新的字符串草巡,不改變str的字符
-
str.capitalize()
:只有行首單詞的首字母大寫- 返回一個新的字符串,不改變str的字符
-
str.center(width [,fillchar])
:字符串填充- 返回一個新的字符串型酥,不改變str的字符
- 返回字符串的寬度為width山憨,不夠的使用fillchar來填充
-
zfill(width)
:右對齊,不夠使用0填充- 返回新字符串
-
ljust(width [,fillchar])
:左對齊冕末,使用fillchar字符串來填充- 返回新字符串
-
rjust(width [,fillchar])
:右對齊萍歉,使用fillchar字符串來填充- 返回新字符串
-
字符串修改
-
str.replace(old, new [, count])
: 使用新的字符串替換舊字符串- 返回新的字符串,不改變str中的字符
- 可以指定替換的次數档桃,默認全部替換
-
str.strip([chars])
:根據指定字符集刪除字符串兩端的字符- 不指定字符集時枪孩,默認為空白字符集合
- 從兩端刪除時,盡可能多的刪除兩端出現的指定字符
- 返回新的字符串,不影響str本身的字符
-
str.lstrip([chars])
:從左側刪除指定字符集中的字符 -
str.rstrip([chars])
:從右側刪除指定字符集中的字符
字符串查找
-
str.find(sub [,start [, end]])
:在str中查找指定的字符串- 找到返回第一次匹配的索引蔑舞,沒找到返回 -1
- 可以指定查找的起止位置 [start,end)
- 從左到右的順序
str.rfind(sub [,start [, end]])
:同上反向-
str.index(sub [,start [, end]])
:在str中查找指定的字符串- 找到返回第一次匹配的索引拒担,沒找到拋出異常ValueError
- 可以指定查找的起止位置 [start,end)
- 從左到右的順序
str.rindex(sub [,start [, end]])
:同上反向-
str.count(sub [,start [, end]])
:統計str中字串出現的次數- 默認從左到右
- 可以指定起止位置 [start, end)
- 返回整數,表示字符出現的次數
字符串判斷
-
str.startswith(prefix [, start[, end]])
:判斷字符【子】串是否以prefix開始- 返回布爾類型值
- 可以指定起止位置 [start, end)
-
str.endswith(suffix [, start[, end]])
:判斷字符【子】串是否以suffix結尾- 返回布爾類型值
- 可以指定起止位置 [start, end)
身份判定
-
str.isalnum()
:判定str是否由數字和字母混合組成(單獨組成也滿足) -
str.isalpha()
:判定str是否只由字母組成 -
str.isdecimal()
:判定str是否只包含十進制數 -
str.isdigit()
:判定str是否全部數字 -
str.isidentifier()
:判定str是否是正確的標示符名 -
str.islower()
:判定str中是否全是小寫字母 -
str.isupper()
:判定str中是否全部大寫字母 -
str.isspace()
:判定str中是否只有空白符