python 3 字串方法操作彙總
阿新 • • 發佈:2019-01-02
基礎資料型別:str
1.1 字串大小寫轉換
- 所有字母大寫 : string.upper()
- 所有字母小寫 : string. lower()
- 第一個單詞的第一個字母大寫,其他字母小寫 : string.capitalize()
- 非字母隔開的部分首字母大寫: string. title()
- 大小寫反轉 : string.swapcasw()
1 s = 'biZZ gates is001number'
3 print(s.upper())
5 print(s.lower())
7 print(s.capitalize())
9 print(s.title())
11 print(s.swapcase())
執行結果:
BIZZ GATES IS001NUMBER ### 所有字母大寫 bizz gates is001number ### 所有字母小寫 Bizz gates is001number ### 第一個單詞的第一個字母大寫 Bizz Gates Is001Number ### 非字母隔開的部分首字母大寫 BIzz GATES IS001NUMBER ### 大小寫反轉
1.2 去除空格
- 去除字串首尾的空格: string.strip()
- 去除左邊(開頭)空格:string.lstrip()
- 去除右邊(結尾)空格:string.rstrip()
--- 當引數為空時, string.strip()將兩端的空白符、\r、\n(換行符)、\t(製表符:相當於tab鍵,四個空格) 都刪除;
--- 當傳入引數後,string.strip()函式會把傳入的引數拆解成一個個字元,從頭到尾迴圈直至全部去掉
1 s = " bizz gates is number1 " 2 print(s.strip()) # 刪除前後空格 3 print(s.lstrip()) # 刪除開頭空格 4 print(s.rstrip()) # 刪除結尾空格
執行結果:
1 bizz gates is number1 2 bizz gates is number1 3 bizz gates is number1
1 s1 = "bbbccc123dddbbcc" 2 print(s1.strip('bc')) # 刪除字母b和c 3 print(s1.lstrip("bc")) # 刪除頭部的字母b和c 4 print(s1.rstrip("bc")) # 刪除結尾的字母b和c
執行結果:
1 123ddd 2 123dddbbcc 3 bbbccc123ddd
1.3 字串切割(字串轉換列表的方法)
- string.split() 將字串切割後返回為一個列表
- string.spit() 不傳入引數,則按照空格去切割,返回列表
- string.split("m") 按元素m進行切割,返回列表
- string.split("m",n) 按元素 m 切割 n 次,返回列表
1 s = "angelababy" 2 print(s.split("a")) # 以元素a對字串進行切割 3 print(s.split("a",2)) # 以元素a對字串進行2次切割
執行結果:
['', 'ngel', 'b', 'by'] ['', 'ngel', 'baby']
1.4 字串替換
- string.replace(old,new,count)
- string.replace(m,n) 將字串所有的m都替換成n
- string.replace(m,n,count) 將old值替換成new值,替換count次
1 s = "angela baby baby"
2 print(s.replace("a","h")) ### 將字元 a 替換成 h
3 print(s.replace("a","h",2)) ### 將前兩個字元 a 替換成 h
執行結果:
hngelh bhby bhby hngelh baby baby
1.5 判斷欄位串組成
- string.isalnum() 判斷字串是否由字母或數字組成
- string.isalpha() 判斷字串是否由字母組成
- string.isdigit() 判斷字串是否由數字組成
- string.isspace() 判斷字串是否由空格組成
1.6 其他方法彙總
### 通過元素查詢字串索引 :find() 、index()
注:find() 和 index() 使用方法一樣,唯一的區別是 find()找不到返回 -1 ,index()找不到報錯。
1 str = "angela baby baby"
2 print(str.find("g")) #查詢元素 m 在字串中的第一個索引 3 print(str.find("a",2,10)) # 在字串索引為2到10之間找元素 a 的第一個索引值 # find()方法找不到返回 -1
4 print(str.index("g")) #通過元素m查詢索引 5 print(str.index("a",2,10)) #在字串索引為2到10之間找元素 a 的第一個索引值
#find()方法找不到就報錯
執行結果:
2
5
2
5
### 1) %s 格式化
# 第一種 1 s = "我叫%s,今年%d歲,身高%.2f。"%("佩琪",6,135.565) 2 print(s)
# 第二種(使用鍵值對)
1 s = "我叫%(name)s,今年%(age)d歲,身高%(high).2f。"%{"name" :"佩琪","high" : 135.565,"age" :6}
2 print(s)
### 2) format 格式化(注:若格式化的語句中已存在百分號(%),則加上%進行轉義,寫法:我的學習進度為80%%)
# 第一種(按順序替換)
1 s = "我叫{},今年{}歲,身高{}。".format("佩琪","6","135") 2 print(s)
# 第二種(加入角標,可以重複利用) 1 s = "我叫{0},今年{1}歲,身高{2},你也叫{0}".format("佩琪","6","135") 2 print(s)
# 第三種(使用鍵值對,可以無序) 1 s = "我叫{name},今年{age}歲,身高{high}".format(name = "佩琪",high = 135,age ="6") 2 print(s)
執行結果:
我叫佩琪,今年6歲,身高135.56。
我叫佩琪,今年6歲,身高135。
我叫佩琪,今年6歲,身高135,你也叫佩琪
我叫佩琪,今年6歲,身高135
### 判斷是否以某個元素開頭/結尾 : startswith() 、 endswith()
1 str = "angela baby baby"
2 print(str.startswith("a")) #判斷是否以m開頭 3 print(str.startswith("m",7,16)) #判斷第二個單詞是否以m開頭 4 print(str.endswith("y")) #判斷是否以m結尾 #返回為bool值
執行結果:
True
False
True
### 計算字元出現的次數 : count()
1 str = "angela baby baby" 2 print(str.count("a")) # 查詢元素 a 在整個字串出現的次數 3 print(str.count("a",7,15)) # 查詢元素 a 在索引為7~15之間出現的次數
執行結果:
4
2
### 1)填充 : join()
1 s = 'alexeweuesir'
2 s1 = '_'.join(s)
3 print(s1)
執行結果:
a_l_e_x_e_w_e_u_e_s_i_r
### 2)填充:center()
1 s = "angle bobyboby"
2 print(s.center(20)) ### 整個字串為20個字元(未寫引數,以空格填充),且字串居中顯示
3 print(s.center(20,"*")) ### 字串以*填充20個字元,且字串居中顯示
執行結果:
angle bobyboby
***angle bobyboby***