字串的格式化format和字串相關函式
阿新 • • 發佈:2020-11-29
一 字串的格式化format
1.1 順序傳參:
"""{}是佔位符"""
strvar = "{}向{}開了一槍,飲蛋而亡".format("小張","小菲")
print(strvar)
1.2索引傳參:
strvar = "{1}向{0}開了一槍,飲蛋而亡".format("小張","小菲")
print(strvar)
1.3關鍵字傳參:
strvar = "{who1}從後面掏了{who2}一下,回頭一記天馬流星拳".format(who1="小王",who2="小方")
print(strvar)
1.4容器型別資料(列表或元組活著的字典)傳參:
strvar = "{0[1]}親了{1[0]}一下,鼻血直冒三萬多尺".format(["小王","建康"],("荷葉","永捐"))
strvar = "{group2[1]}親了{group1[1]}一下,鼻血直冒三萬多尺".format(group1=["小王","建康"],group2 = ("荷葉","永捐"))
# group2[yj] 如果是字典在format格式化字串的使用中,不能加上引號""
strvar = "{group2[yj]}親了{group1[0]}一下,鼻血直冒三萬多尺".format(group1=["小王","建康"],group2 = {"wz":"小王","yj":"永捐"})
print(strvar)
1.5 format的填充符號的使用( ^ > < )
""" ^ 原字串居中 > 原字串居右 < 原字串居左 {who:*^10} who : 關鍵字傳參 * : 要填充的符號 ^ : 原字串居中 10 : 填充符號的個數 + 原字串的個數 如果不寫填充符號,預設填充空格; """ strvar = "{who:*^10}在{where:>>10},坐著{dosomething:!<10},感覺{feel:^10}".format(who="雅琪",where="電影院",dosomething="吃飯",feel="自己萌萌噠") print(strvar)
1.6 進位制轉換等特殊符號的使用( :d :f :s :, )
# :d 整型佔位符 (必須是整型) strvar = "子豪,昨天晚上買了{:d}個風油精".format(100) # :3d 佔三位 strvar = "子豪,昨天晚上買了{:^3d}個風油精".format(3) print(strvar) # :f 浮點型佔位符 (必須是浮點型) 預設小數點保留六位 strvar = "盛林畢業了,一個月工資:{:f}".format(9.91234567) # :.2f 小數點保留兩位 存在四捨五入 strvar = "盛林畢業了,一個月工資:{:.2f}".format(9.91934567)print(strvar) # :s 字串佔位符 (必須是字串) strvar = "{:s}".format("歡慶真胖~") print(strvar) # :, 金錢佔位符 strvar = "{:,}".format(12345678) print(strvar)
二 . 字串相關函式
part1:
*capitalize 字串首字母大寫
strvat = 'how old sre you' res = strvar.capitalize() print(res)
# *title 每個單詞的首字母大寫
strvar = 'how are you' res = strvar.title() print(res)
# *upper 將所有字母變成大寫
strvar = 'to be or NOT to be' res = strvar.upper() print(res)
# *lower 將所有字母變成小寫
res = strvar.lower() print(res)
# *swapcase 大小寫互換
res = strvar.swapcase() print(res)
# *len 計算字串的長度
res = len(strvar) print(res)
# *count 統計字串中某個元素的數量
"""count(字元,[start,end])""" strvar = "to be or NOT to be" res = strvar.count("b") res = strvar.count("b",4) res = strvar.count("b",4,8) print(res)
# *find 查詢某個字串第一次出現的索引位置 (推薦)
"""find(字元,[start,end]) 如果找不到對應字元,返回-1""" strvar = "oh father this is my favorate dog" res = strvar.find("this") res = strvar.find("is",15) res = strvar.find("is",15,16) # -1 print(res)
# *startswith 判斷是否以某個字元或字串為開頭
"""startswith(字元,[start,end]) 成立返回True,反之返回False""" strvar = "oh father this is my favorate dog" res = strvar.startswith("oh") res = strvar.startswith("oh",3) res = strvar.startswith("father",3,9) print(res
# *endswith 判斷是否以某個字元或字串結尾
"""endswith(字元,[start,end]) 成立返回True,反之返回False""" strvar = "oh father this is my favorate dog" res = strvar.endswith("dog") res = strvar.endswith("dog",-4) res = strvar.endswith("dog",-4,-2) # d print(res)
part2:
# *isupper 判斷字串是否都是大寫字母
strvar = 'TO BE' res = strvar.isupper() print(res)
# *islower 判斷字串是否都是小寫字母
res = strvar.islower() print(res)
# *isdecimal 檢測字串是否以數字組成 必須是純數字
strvar = "12345" res = strvar.isdecimal() print(res)
part3
# *split 按某字元將字串分割成列表(預設字元是空格)
"""split("字元",切割次數) 從左至右""" strvar = "you can you up no can no bb" lst = strvar.split() strvar = "you@can@you@up" lst = strvar.split("@") # 從左至右切割 lst = strvar.split("@",1) # 從右至左切割 lst = strvar.rsplit("@",1) print(lst)
# *join 按某字元將列表拼接成字串(容器型別都可
lst = ['you','can','you','up'] res = "@".join(lst) print(res)
# *center 填充字串,原字元居中 (預設填充空格)
strvar = "***" res = strvar.center(10) # 預設填充空格 res = strvar.center(10,"#") # 可選擇填充的符號 print(res)
# *strip 預設去掉首尾兩邊的空白符(空格\n \t \r ... )
strvar = " 劉德華 " print(strvar.strip()) #rstrip 去掉右邊某個字元 print(strvar.rstrip()) #lstrip 去掉左邊某個字元 print(strvar.lstrip())
# replace()把字串的舊字元換成新字元
""" 功能: 把字串的舊字元換成新字元 格式: 字串.replace('舊字元','新字元'[, 限制替換的次數]) 返回值: 替換之後的字串 """ strvar = "可愛的小狼狗喜歡吃肉,有沒有,有沒有,還有沒有" res = strvar.replace("有沒有","真沒有") # 替換一次 res = strvar.replace("有沒有","真沒有",1) print(res)