1. 程式人生 > >python 3 字串方法操作彙總

python 3 字串方法操作彙總

基礎資料型別: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***