格式化輸出的幾種方法 主要介紹format函數的用法

1 str自帶函數格式化輸出 rjust() ljust() center() zfill()


zfill是補齊零


介紹:

rjust(...)

    S.rjust(width[, fillchar]) -> string


給字符串格式化輸出,對字符串本身不做處理,只是返回一個格式化過的字符串,可以指定字符串寬度,並且指定填充的字符,默認填充空格!


作用: 對齊輸出


舉例:

In [26]: s1="1"        
In [27]: s2="1234"     
In [28]: s1
Out[28]: '1'
In [29]: s2
Out[29]: '1234'
In [30]: for i in s1,s2:
   ....:     print i
   ....:     
1
1234

#左對齊輸出,不滿長度爲4的,默認填充空格
In [34]: for i in s1,s2:
   ....:     print i.rjust(4)
   ....:     
   1
1234


#填充其他字符

In [35]: s1.rjust(4,"*")
Out[35]: '***1'


#補齊0

In [38]: s1.zfill(4)
Out[38]: '0001'

等於

In [40]: s1.rjust(4,'0')
Out[40]: '0001'

2 浮點型指定寬度輸出

In [36]: 1.0/3
Out[36]: 0.33333333333333331
In [37]: "%.3f" % (1.0/3)
Out[37]: '0.333'


3 format函數格式化化輸出,格式有點像C語言,替換變量

也是str自帶函數,可以多用多用

它通過{}和:來代替%。


通過位置

In [48]: print '{0} is a {1}'.format('cat','animal')
cat is a animal


In [49]: print '{1} is a {0}'.format('cat','animal') 
animal is a cat


解釋:{}的內容,會被format()中的參數代替,可以在'{}'裏填寫上數字來指定format()中的位置,但如果'{}'裏面是key參數其中的內容會被format()中的value值代替

通過關鍵字參數

In [50]: print '{name} is a {age}'.format(name='andy', age=20)  
andy is a 20


通過下標

In [56]: l = ['andy', 'good']
In [60]: '{0[0]} {0[1]} {0[0]}'.format(l) 
Out[60]: 'andy good andy'


格式限定符

它有着豐富的的“格式限定符”(語法是{}中帶:號),比如:

填充與對齊

填充常跟對齊一起使用

^、<、>分別是居中、左對齊、右對齊,後面帶寬度

:號後面帶填充的字符,只能是一個字符,不指定的話默認是用空格填充

比如

In [15]: '{:>8}'.format('189')
Out[15]: '   189'
In [16]: '{:0>8}'.format('189')
Out[16]: '00000189'
In [17]: '{:a>8}'.format('189')
Out[17]: 'aaaaa189'

精度與類型f

精度常跟類型f一起使用

In [44]: '{:.2f}'.format(321.33345)
Out[44]: '321.33'

其中.2表示長度爲2的精度,f表示float類型。

其他類型

主要就是進制了,b、d、o、x分別是二進制、十進制、八進制、十六進制。

In [54]: '{:b}'.format(17)
Out[54]: '10001'
In [55]: '{:d}'.format(17)
Out[55]: '17'
In [56]: '{:o}'.format(17)
Out[56]: '21'
In [57]: '{:x}'.format(17)
Out[57]: '11'

用,號還能用來做金額的千位分隔符。

In [47]: '{:,}'.format(1234567890)
Out[47]: '1,234,567,890'


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章