Python的字符串格式化有兩種方式:%格式符方式,format方式spa
%[(name)][flags][width].[precision]typecodecode
注:Python中百分號格式化是不存在自動將整數轉換成二進制表示的方式orm
(name) 可選,用於選擇指定的key對象
a = "%(name)s-----%(age)d "%{'name':'xx','age':20} print(a)
執行結果:blog
xx-----20
flags 可選,可供選擇的值有:ci
width 可選,佔有寬度unicode
name佔10位,+,右對齊,age佔10位,-,左對齊字符串
b = "%(name)+10s————————%(age)-10d————————"%{'name':'xx','age':20} print(b)
執行結果:io
xx————————20 ————————
空格,右對齊form
0,用0填充空白處
c = "------%(year) d******%(age)010d "%{'year':2016,'age':-20} print(c)
執行結果:
------ 2016******-000000020
.precision 可選,小數點後保留的位數
只保留兩位小數
d = '--------%(p).2f'%{'p':1.23456} d1 = '--------%(p)f'%{'p':1.23456} print(d) print(d1)
執行結果:
--------1.23 --------1.234560
typecode 必選
e ='***%c***%o***%x'%(65,15,15) print(e)
執行結果:
***A***17***f
f = '-----%(num)e------%(num)E'%{'num':1000000000} print(f)
執行結果:
-----1.000000e+09------1.000000E+09
g = '-----%(num)g------%(num1)G'%{'num':1000000000,'num1':100} print(g)
執行結果:
-----1e+09------100
s = 'aaa %' print(s) s1 = 'aaa %s %%'%('bbb') print(s1)
執行結果:
aaa %
aaa bbb %
[[fill]align][sign][#][0][width][,][.precision][type]
fill 【可選】空白處填充的字符
align 【可選】對齊方式(需配合width使用)
width 【可選】格式化位所佔寬度
s1 ='---{:*^20s}----'.format('welcome') print(s1) s2 ='---{:*>20s}----'.format('welcome') print(s2) s3 ='---{:*<20s}----'.format('welcome') print(s3)
執行結果:
---******welcome*******---- ---*************welcome---- ---welcome*************----
# 【可選】對於二進制、八進制、十六進制,若是加上#,會顯示 0b/0o/0x,不然不顯示
三種方法表示
a1 = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%},{:c}".format(15, 15, 15, 15, 15, 15.87623,65) a2 = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%},{1:c}".format(15,65) a3 = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%},{cc:c}".format(num=15,cc=65) print(a1) print(a2) print(a3)
執行結果:
numbers: 1111,17,15,f,F, 1587.623000%,A
numbers: 1111,17,15,f,F, 1500.000000%,A
numbers: 1111,17,15,f,F, 1500.000000%,A
, 【可選】爲數字添加分隔符,如:1,000,000
.precision 【可選】小數位保留精度
n = '---{:,d}----'.format(10000000) n1 = '---{:.2f}----'.format(1.2345) print(n) print(n1)
執行結果:
---10,000,000---- ---1.23----
format經常使用格式化
tp1 = "i am {}, age {}, {}".format("seven", 18, 'alex') tp2 = "i am {}, age {}, {}".format(*["seven", 18, 'alex']) tp3 = "i am {0}, age {1}, really {0}".format("seven", 18) tp4 = "i am {0}, age {1}, really {0}".format(*["seven", 18]) tp5 = "i am {name}, age {age}, really {name}".format(name="seven", age=18) tp6 = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18}) tp7 = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33]) tp8 = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1) tp9 = "i am {:s}, age {:d}".format(*["seven", 18]) tp10 = "i am {name:s}, age {age:d}".format(name="seven", age=18) tp11 = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18}) print(tp1) print(tp2) print(tp3) print(tp4) print(tp5) print(tp6) print(tp7) print(tp8) print(tp9) print(tp10) print(tp11)
執行結果:
i am seven, age 18, alex i am seven, age 18, alex i am seven, age 18, really seven i am seven, age 18, really seven i am seven, age 18, really seven i am seven, age 18, really seven i am 1, age 2, really 3 i am seven, age 18, money 88888.100000 i am seven, age 18 i am seven, age 18 i am seven, age 18