天天看點

格式化字元串使用

#coding=utf-8

'''

可以指定所需長度的字元串的對齊方式:

< (預設)左對齊

> 右對齊

^ 中間對齊

= (隻用于數字)在小數點後進行補齊

print '1:\t|{0:>10},'.format('wangyu')

print '2:\t|{0:4.2f}'.format(1.1415926)

print '3:\t|',format(1.1415926,'<10.2f')

print '4:\t|{0:<10},{1:<15}'.format('wangyu',1.1415926)

print '5:\t|User ID: {uid} Last seen: {last_login}'.format(uid='root',last_login = '5 Mar 2008 07:20') 

'''格式化訓示符可以包含一個展示類型來控制格式。

例如,浮點數可以被格式化為一般格式或用幂來表示。

'b' - 二進制。将數字以2為基數進行輸出。

'c' - 字元。在列印之前将整數轉換成對應的Unicode字元串。

'd' - 十進制整數。将數字以10為基數進行輸出。

'o' - 八進制。将數字以8為基數進行輸出。

'x' - 十六進制。将數字以16為基數進行輸出,9以上的位數用小寫字母。

'e' - 幂符号。用科學計數法列印數字。用'e'表示幂。

'g' - 一般格式。将數值以fixed-point格式輸出。當數值特别大的時候,用幂形式列印。

'n' - 數字。當值為整數時和'd'相同,值為浮點數時和'g'相同。不同的是它會根據區域設定插入數字分隔符。

'%' - 百分數。将數值乘以100然後以fixed-point('f')格式列印,值後面會有一個百分号。

print '6:\t|{0:b}'.format(3)

print '7:\t|{0:c}'.format(3)

print '8:\t|{0:d}'.format(3)

print '9:\t|{0:o}'.format(3)

print '10:\t|{0:x}'.format(3)

print '11:\t|{0:e}'.format(3.75)

print '12:\t|{0:g}'.format(3.75)

print '13:\t|{0:n}'.format(3.75) #浮點數

print '14:\t|{0:n}'.format(3)    #整數

print '15:\t|{0:%}'.format(3.75)

#輸入形式的控制format

a = int(raw_input('a:'))

b = int(raw_input('b:'))

print '16:\t|%*.*f' % (a, b, 1.1415926)

print '17:\t|{array[2]}'.format(array=range(10))

print '18:\t|{attr.__class__}'.format(attr=0)

print '19:\t|{digit:*^ 10.5f}'.format(digit=1.0/3)

類和類型可以定義一個__format__()方法來控制怎樣格式化自己。

它會接受一個格式化訓示符作為參數:

def __format__(self, format_spec):

 if isinstance(format_spec, unicode):

  return unicode(str(self))

 else:

  return str(self)

本文轉自 奚落123 51CTO部落格,原文連結:http://blog.51cto.com/guyuyuan/1925572,如需轉載請自行聯系原作者