二. 使用format格式
格式 [[fill]align][sign][#][0][width][,][.precision][type]
fill 可選 空白處填充的字符
align 可選 對齊方式(需配合width使用)
< 內容左對齊
> 內容右對齊(默認)
= 內容右對齊,將符號放置在填充字符的左側,且只對數字類型有效。 即使:符號+填充物+數字 ,內容居中
sign 可選 有無符號數字
+,正號加正,負號加負;
-,正號不變,負號加負;
空格 ,正號空格,負號加負;
“#” 可選 對於二進制、八進制、十六進制,如果加上#,會顯示 0b/0o/0x,否則不顯示
, 可選 為數字添加分隔符,如:1,000,000
width 可選 格式化位所占寬度
.precision 可選 小數位保留精度
type 可選 格式化類型
傳入” 字符串類型 “的參數 s,格式化字符串類型數據
空白,未指定類型,則默認是None,同s
傳入“ 整數類型 ”的參數
b,將10進制整數自動轉換成2進制表示然后格式化
c,將10進制整數自動轉換為其對應的unicode字符
d,十進制整數
o,將10進制整數自動轉換成8進制表示然后格式化;
x,將10進制整數自動轉換成16進制表示然后格式化(小寫x)
X,將10進制整數自動轉換成16進制表示然后格式化(大寫X)
傳入“ 浮點型或小數類型 ”的參數 e, 轉換為科學計數法(小寫e)表示,然后格式化;
E, 轉換為科學計數法(大寫E)表示,然后格式化;
f , 轉換為浮點型(默認小數點后保留6位)表示,然后格式化;
F, 轉換為浮點型(默認小數點后保留6位)表示,然后格式化;
g, 自動在e和f中切換
G, 自動在E和F中切換
%,顯示百分比(默認顯示小數點后6位)
例:
1.格式化字典形式
>>> f1="I am {0},I am {1}d years old!".format("Tom",22) >>> print(f1) I am Tom,I am 22d years old! >>> f2="I am {name},I am {age}d years old!".format(**{"name":"Jeck","age":23})#此處**必不可少 >>> print(f2) I am Jeck,I am 23d years old!
2.字符串中變量的賦值
>>> mstr="I am %s,and I have %d book!"
>>> print("mstr---",mstr%("Tim",3))
mstr--- I am Tim,and I have 3 book!
>>> mstr1="I am %s,and I have %d book!"%("Tom",5)
>>> print("mstr1---",mstr1)
mstr1--- I am Tom,and I have 5 book!
>>> mstr2="I am {0},and I have{2} pen,and I love {1}!".format("Jack","北京",10) >>> print("mstr2---",mstr2) mstr2--- I am Jack,and I have10 pen,and I love 北京!
>>> mstr3="I am {0},and I have {1} pen,and I love {2}!".format("Jack",10,"北京") >>> print("mstr3---",mstr3) mstr3--- I am Jack,and I have 10 pen,and I love 北京!
3.常用的字符串操作函數
>>> mstr="xya abaac ddddeeee ff aabddv" >>> print(mstr.count("a"))#統計a出現的次數 6 >>> print("返回第一個c出現的索引位置:",mstr.find("c")) 返回第一個c出現的索引位置: 8 >>> print(mstr.replace("a","^-^"))#用^-^替換所有的a xy^-^ ^-^b^-^^-^c ddddeeee ff ^-^^-^bddv >>> print(mstr.replace("a","^-^",1))#用^-^替換第一個a xy^-^ abaac ddddeeee ff aabddv >>> print(mstr.title())#字符串的首字母大寫 Xya Abaac Ddddeeee Ff Aabddv
4.字符串中插入字符、分割字符串
>>> mstr="xya abaac daaee f abv" >>> print ("^-^".join(mstr))#把^-^插入到字符串的每個字符之間 x^-^y^-^a^-^ ^-^a^-^b^-^a^-^a^-^c^-^ ^-^d^-^a^-^a^-^e^-^e^-^ ^-^f^-^ ^-^a^-^b^-^v >>> print(" ".join(mstr))#把空格插入到字符串的每個字符之間 x y a a b a a c d a a e e f a b v >>> print(mstr.split())#按切割字符串,默認在空格處切分 ['xya', 'abaac', 'daaee', 'f', 'abv'] >>> print(mstr.split("a"))#割字符串,以a為分隔符 ['xy', ' ', 'b', '', 'c d', '', 'ee f ', 'bv']
5.刪除字符串中的空格
>>> mstr=" akdflkas:dsfadf " >>> print(mstr.strip())#移除字符串兩邊的空格 akdflkas:dsfadf >>> print(mstr.lstrip())#移除字符串左邊的空格 akdflkas:dsfadf >>> print(mstr.rstrip())#移除字符串右邊的空格 akdflkas:dsfadf
6.填充字符串
(1)填充常跟對齊一起使用,^<>分別是居中、左對齊、右對齊,后面帶寬度
(2):號后面帶填充的字符,只能是一個字符,不指定的話默認是用空格填充
>>> "{:20}".format("asdf")#默認在規定的20個字符長度中左對齊 'asdf ' >>> "{:^20}".format("adff")#^表示在規定20個字符的長度中居中對齊 ' adff ' >>> "{:<20}".format("asdf")#<表示在規定的20個字符的長度中左對齊 'asdf ' >>> "{:>20}".format("asdf")#>表示在規定的20個字符的長度中右對齊 ' asdf' >>> "python{:*<20}".format("666")#指定填充字符串'666'在'python'后,並且左對齊,別外不夠20個字符時用*號補齊 'python666*****************' >>> "python{:*^20}".format("666")#指定填充字符串'666'在'python'后,並且在20個字符的長度中居中對齊,不夠的用*補齊 'python********666*********' >>> "python{:*>20}".format("666")#指定填充字符串'666'在'python'后,並且在20個字符的長度中右對齊,不夠的用*補齊
'python*****************666'
7.加千位分隔符
>>> "{:,}".format(1234567890)#添加千位分割符 '1,234,567,890'
8.格式化小數點位數
#保留3位小數點的方法
>>> x=1122.12221221 >>> "{:0.3f}".format(x) '1122.122' >>> "{0:0.3f}".format(x) '1122.122' >>> "{0:.3f}".format(x) '1122.122' >>> "{:.3f}".format(x) '1122.122'