Python 3.x 格式化輸出字符串 % & format 筆記


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM