python格式化字符串有%和{}兩種 字符串格式控制符.
字符串輸入數據格式類型(%格式操作符號)
%%百分號標記
%c字符及其ASCII碼
%s字符串
%d有符號整數(十進制)
%u無符號整數(十進制)
%o無符號整數(八進制)
%x無符號整數(十六進制)
%X無符號整數(十六進制大寫字符)
%e浮點數字(科學計數法)
%E浮點數字(科學計數法,用E代替e)
%f浮點數字(用小數點符號)
%g浮點數字(根據值的大小采用%e或%f)
%G浮點數字(類似於%g)
%p指針(用十六進制打印值的內存地址)
%n存儲輸出字符的數量放進參數列表的下一個變量中
字符串格式控制%[(name)][flag][width][.][precision]type
name:可為空,數字(占位),命名(傳遞參數名,不能以數字開頭)以字典格式映射格式化,其為鍵名
flag:標記格式限定符號,包含+-#和0,+表示右對齊(會顯示正負號),-左對齊,前面默認為填充空格(即默認右對齊),0表示填充0,#表示八進制時前面補充0,16進制數填充0x,二進制填充0b
width:寬度(最短長度,包含小數點,小於width時會填充)
precision:小數點后的位數,與C相同
type:輸入格式類型,請看上面
還有一種format_spec格式{[name][:][[fill]align][sign][#][0][width][,][.precision][type]}
用{}包裹name命名傳遞給format以命名=值 寫法,非字典映射,其他和上面相同
fill = <any character> #fill是表示可以填寫任何字符
align = "<" | ">" | "=" | "^" #align是對齊方式,<是左對齊, >是右對齊,^是居中對齊。
sign = "+" | "-" | " " #sign是符號, +表示正號, -表示負號
width = integer #width是數字寬度,表示總共輸出多少位數字
precision = integer #precision是小數保留位數
type = "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%" #type是輸出數字值是的表示方式,比如b是二進制表示;比如E是指數表示;比如X是十六進制表示
例子
1 print("{:,}".format(123456))#輸出1234,56 2 3 print("{a:w^8}".format(a="8"))#輸出www8wwww,填充w 4 5 print("%.5f" %5)#輸出5.000000 6 7 print("%-7s3" %("python"))#輸出python 3 8 9 print("%.3e" %2016)#輸出2.016e+03,也可以寫大E 10 11 print("%d %s" %(123456,"myblog"))#輸出123456 myblog 12 13 print("%(what)s is %(year)d" % {"what":"this year","year":2016})#輸出this year is 2016 14 15 print("{0}{1}".format("hello","fun"))#輸出hellofun,這與CSharp的格式化字符(占位符)相似 16 17 print("{}{}{}".format("spkk",".","cn"))#輸出spkk.cn 18 19 print("{a[0]}{a[1]}{a[2]}".format(a=["spkk",".","cn"]))#輸出spkk.cn 20 21 print("{dict[host]}{dict[dot]}{dict[domain]}".format(dict={"host":"www","domain":"spkk.cn","dot":"."}))#輸出www.spkk.cn 22 23 print("{a}{b}".format(a="python",b="3"))#輸出python3 24 25 print("{who} {doing} {0}".format("python",doing="like",who="I"))#輸出I like python