【Python】格式化字串輸出

dbasdk發表於2017-08-03
一 簡介
   python 字串輸出格式化有兩種方式 %[s,d,] ,python 2.6 版本提供了string.format(),其功能也相當強大。talk is cheap,show me the code .
二 使用
2.1 引數對映
str.format 透過 {} 替換 字串的 %,我們可以使用基於位置對映引數,基於下表,基於引數
比如 

  1. In [23]: print 'i am a %s,work at %s !' %('dba','youzan')
  2. i am a dba,work at youzan !
  3. In [24]: print 'i am a {0},work at {1} !'.format('dba','youzan')
  4. i am a dba,work at youzan !
  5. In [26]: print 'i am a {arg},work at {company} !'.format(arg='dba',company='youzan')
  6. i am a dba,work at youzan !
  7. format 不限制引數的呼叫次數
  8. In [28]: print 'i am a {0},work at {1},and {1} is  good at SAAS service !'.format('dba','youzan')
  9. i am a dba,work at youzan,and youzan is  good at SAAS service !

2.2 格式化輸出
% 提供豐富的格式化輸出,format當然也有同樣的功能。
填充與對齊 
^ 居中
< 左對齊
> 右對齊 後面頻寬度
:號後面帶填充的字元,只能是一個字元,不指定的話預設是用空格填充
具體的使用方式如下
  1. In [30]: fs='{:<8}'
  2. In [31]: fs.format('dba')
  3. Out[31]: 'dba '
  4. In [32]: fs='{:1<8}'
  5. ##左對齊
  6. In [33]: fs.format('dba')
  7. Out[33]: 'dba11111'
  8. #右對齊
  9. In [34]: fs='{:1>8}'
  10. In [35]: fs.format('dba')
  11. Out[35]: '11111dba'
  12. #居中
  13. In [36]: fs='{:1^8}'
  14. In [37]: fs.format('dba')
  15. Out[37]: '11dba111'
浮點數精度
  1. In [40]: fs='{:.3f}'
  2. In [41]: fs.format(3.14159265358)
  3. Out[41]: '3.142'
數字的進位制
  1. b 分別是二進位制
  2. d 十進位制
  3. o 八進位制
  4. x 十六進位制。
  1. In [42]: ':b'.format(29)
  2. Out[42]: ':b'
  3. In [43]: '{:b}'.format(29)
  4. Out[43]: '11101'
  5. In [44]: '{:d}'.format(29)
  6. Out[44]: '29'
  7. In [45]: '{:x}'.format(29)
  8. Out[45]: '1d'
  9. In [46]: '{:o}'.format(29)
  10. Out[46]: '35'
用逗號 還能用來做金額的千位分隔符。

  1. In [47]: '{:,}'.format(2132323455)
  2. Out[47]: '2,132,323,455'

三 小結
  理論知識就介紹到這裡了,如何在實際中運用呢?就交給給位讀者朋友了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-2143035/,如需轉載,請註明出處,否則將追究法律責任。

相關文章