1. 程式人生 > 實用技巧 >字串的格式化format和字串相關函式

字串的格式化format和字串相關函式

一 字串的格式化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)