字串的操作方法(第二天)

20181225開始玩蛇發表於2018-12-26

  2018-12-26

  今天是我正式學習Python的第二天,也是我準備用部落格來記錄我學習歷程的第一天。希望可以堅持下去,並且真正學到一些東西。


對字串進行操作的方法:


 

1.對輸入字元是否是數字的判斷{str.isdecimal(),str.isdigit(),str.isnumeric()}

a = "2"
b = ""
c = ""
v1 = a.isdecimal()
v2 = a.isdigit()
v3 = a.isnumeric()
v4 = b.isdecimal()
v5 = b.isdigit()
v6 = b.isnumeric()
v7 = c.isdecimal()
v8 = c.isdigit()
v9 = c.isnumeric()
print(a,v1,v2,v3)
print(b,v4,v5,v6)
print(c,v7,v8,v9)
2 True True True
② False True True
二 False False True

  由上圖可見,str.isnumeric()的可適用範圍最廣。

 


 

2.字串的大小寫轉換{str.casefold(),str.upper(),str.lower(),str.swapcase(),str.title()}

 還有對於其的判斷{str.isupper(),str.islower(),str.istitle()}

a = "WCbLyN"
print(a.casefold())     #字串轉變為對應的小寫,不止英文
print(a.swapcase())     #將大小寫互換
print(a.upper())        #全部轉換為大寫
print(a.lower())        #全部轉換為小寫
print(a.title())        #首字母大寫,其他小寫
print(a.isupper())      #判斷是否為大寫
print(a.islower())      #判斷是否為小寫
print(a.istitle())      #判斷是否為首字母大寫

結果依次為:
wcblyn
wcBlYn
WCBLYN
wcblyn
Wcblyn
False
False
False

 


 

3.在字串中查詢某一字元{str.find()}

a = "WCbLyNWCbLyNWCbLyN"
v = a.find("C",0,2)
v1 = a.find("c")
v2 = a.find("C",0,1)
print(v,v1,v2)                 #顯示字串中第一次出現此字元的位置,也可限定開始和結束的區間,左閉右開,查詢失敗返回-1

結果依次為:
1 -1 -1

 


 

4.把佔位符替換成指定的值{str.format(),str.format_map()}

a = "i am {name},age{b}"
v = a.format(name = "wcb",b = 21 )                    
v1 = a.format_map({"name":"lyn","b":21})
print(v)
print(v1)        #格式化,將一個字串中的佔位符替換為指定的值,按順序填入 

結果為:
i am wcb,age21
i am lyn,age21

 

5.將字串中的 字元 替換成對應的字元{str.maketrans(str1,str2),str.translate()}

a = "lynwcb"
b = "123456"
v = "456 love 123"
m = str.maketrans(b,a)            #將兩個參照的字串一一對應起來
v1 = v.translate(m)                #轉換
print(v1)

結果為:
wcb love lyn        

 

6.將字串內的字元或字串替換成字元或字串{str.replace()}

a = "lynwcb596922596922"
v1 = a.replace("wc","love")
v2 = a.replace("w","love")
v3 = a.replace("wc","o")
v4 = a.replace("2","o")
v5 = a.replace("2","o",2)             #可通過新增引數選擇替換前n個
print(v1)
print(v2)
print(v3)
print(v4)
print(v5)

結果依次為:
lynloveb596922596922
lynlovecb596922596922
lynob596922596922
lynwcb5969oo5969oo
lynwcb5969oo596922

 

7.去除空格、 、
,並可去除指定字串(有限最多匹配){str.strip(),str.lstrip(),str.rstrip()}

p = "lynwcblynwcb"
v = p.strip("wcbly")
print(v)

結果為:
nwcblyn

這個功能讓我很困惑,目前還沒搞懂是什麼原理


 

8.將字串中的每一個元素按照指定分隔符進行拼接{str.join()}

a = "_"
v = "lynwcb596922"
v1 = a.join(v)
print(v1)

結果為:
l_y_n_w_c_b_5_9_6_9_2_2             #在兩個字元之間加入,前後沒有

 

9.根據指定字元或者字串在其第一次出現的位置將字串分成三份,並保留關鍵詞{str.partition(),str.rpartition()}

a = "lynwcb596922lynwcb596922"
print(a.partition("wc"))
print(a.rpartition("wc"))         #從右邊開始檢索第一個關鍵詞

結果為:
(`lyn`, `wc`, `b596922lynwcb596922`)
(`lynwcb596922lyn`, `wc`, `b596922`)

 

10.根據指定字元分割字串{str.split(),str.rsplit()}

a = "lynwcb596922lynwcb596922"
print(a.split("cb"))
print(a.split("cb",1))      #其本身取不到.可定引數,確定分幾次
print(a.rsplit("cb",1))

結果為:
[`lynw`, `596922lynw`, `596922`]
[`lynw`, `596922lynwcb596922`]
[`lynwcb596922lynw`, `596922`]

 

可應用於整數加法計算器

value = "5 + 9"
v1,v2 = value.split("+")
print(int(v1)+int(v2))

 

11.製作表格{str.expandtabs()}

a = "name	age	gender
wcb	21	male
lyn	21	female"
print(a.expandtabs(20))                 #20個為一組,若遇到	,自動補滿20

結果為:
name                age                 gender
wcb                 21                  male
lyn                 21                  female

 

12.幫助建立連續的數字,也可通過設定步長來指定不連續的數字{range()}

v = range(0,100,5)        #左閉右開 0<=x<100
for i in v:
    print(i)

 

13.將字串居中,並用一個 字元 將兩邊填充滿{str.center(),str.ljust(),str.rjust()}

a = "LYNWCB"
v = a.center(20,"*")            
print(v)

結果為:
*******LYNWCB*******

 

2018-12-27 09:21:21 正式完成第一次的整合,拖的時間有點長,今天要抓緊整理,加快程式。

 

相關文章