[Python] 使用format對字串格式化

從python 2.6開始,可以使用format對string格式化

用法1:使用{}

s = '{} {}!'.format('Hello','word')
print s

用法2:使用{index}

s = '{0} {1}!'.format('Hello','word')
print s
s1 = '{1} {0}!'.format('Python','Hello')
print s1

用法3:使用變數名

s = '{s1} {s2}!'.format(s1='Hello',s2='word')
print s

用法4:使用dict

dict = {'type':'dict','s1':'Hello','s2':'world'}
s = 'Using {type}: {s1} {s2}!'.format(**dict)
print s

用法5:使用list

list = ['list','Hello','world']
s = 'Using {0[0]}: {0[1]} {0[2]}!'.format(list)
print s
list2 = [['list','list2'],['Hello','Hello2'],['world','world2']]
s1 = 'Using {0[0][1]}: {0[1][1]} {0[2][1]}!'.format(list2)
print s1

用法6:數字格式化

# -*- coding: utf-8 -*- 
num = 1.5238
print 'L1: {:.3f}'.format(num) #小數點後保留位數(四拾五入)
print 'L2: {:+.3f}'.format(num*-1) #含正負號
num2 = 9999997.9999
print 'L3: {:,}'.format(num2) #為數字添加逗號
print 'L4: {:2e}'.format(num2) #指數記數法
num3 = 0.5
print 'L5: {:%}'.format(num3) #轉換成百分比
print 'L6: {:.2%}'.format(num3) #轉換成百分比,小數點後保留2位
num4 = 9
print 'L7: {:<3}'.format(num4) #向向對齊後string長度是3,以空格填補
print 'L8: {:>3}'.format(num4) #向右對齊後string長度是3,以空格填補
print 'L9: {:^3}'.format(num4) #置中對齊後string長度是3,以空格填補
print 'L10: {:a^3}'.format(num4) #置中對齊後string長度是3,以'a'填補
print 'L11: {:0>5d}'.format(num4) #變長度為5,向左補0,冒號後只可有一個字元
print 'L12: {:a<5d}'.format(num4) #變長度為5,向右以a填充,冒號後只可有一個字元
num5 = 10
#進制轉換
print 'BIN: {:b}'.format(num5)
print 'OCT: {:o}'.format(num5)
print 'DEC: {:d}'.format(num5)
print 'HEX: {:x}'.format(num5)
print 'HEX: {:#x}'.format(num5)
print 'HEX: {:#X}'.format(num5)