2018-12-26 今天是我正式學習Python的第二天,也是我準備用博客來記錄我學習歷程的第一天。希望可以堅持下去,並且真正學到一些東西。 對字元串進行操作的方法: 1.對輸入字元是否是數字的判斷{str.isdecimal(),str.isdigit(),str.isnumeric()} 由上 ...
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.去除空格、\t、\n,並可去除指定字元串(有限最多匹配){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\tage\tgender\nwcb\t21\tmale\nlyn\t21\tfemale" print(a.expandtabs(20)) #20個為一組,若遇到\t,自動補滿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 正式完成第一次的整合,拖的時間有點長,今天要抓緊整理,加快進程。