[Python學習筆記]3——強大的.format
阿新 • • 發佈:2019-01-27
記錄下平時發現的能簡化程式設計的函式、語法和格式等。
巧用.format
發現有這個語法簡直如獲珍寶!!!下面是一些運用舉例
一、替換
A、 對應序號替換
大括號內為索引序號,format內參數一一對應變數要替換的內容
>>>'hello{0}_s{1}_s{2}_s{3}'.format('!','A','B','C')
'hello!_sA_sB_sC'
>>> 'hello{0}_s{2}_s{1}_s{0}'.format('!','A','B','C')
'hello!_sB_sA_s!'
>>> 'hello{0}_s{2}_s{1}_s{3[0]} {3[1]}' .format('!','A','B',['C','!'])
'hello!_sB_sA_sC !'
B、對應變數替換
>>>'hello{x}_s{y}_s{z}_s{r}'.format(x='!',y='A',z='B',r='C')
'hello!_sA_sB_sC'
C、預設按順序替換
>>> 'hello{}_s{}_s{}_s{}'.format('!','A','B','C')
'hello!_sA_sB_sC'
二、指定格式
結合:使用
A、指定精度
結合f 使用
>>> '{:.3f}' .format(4.158347)
'4.158'
>>> '{:.5f}'.format(4.158347)
'4.15835'
>>> '{:.1f}'.format(4.158347)
'4.2'
B、指定進位制
b、d、o、x分別表示二進位制、十進位制、八進位制、十六進位制
>>> '{:b}'.format(23)
'10111'
>>> '{:d}'.format(23)
'23'
>>> '{:o}'.format(23)
'27'
>>> '{:x}'.format (23)
'17'
C、指定對齊方式
^、<、>分別是居中、左對齊、右對齊,後面頻寬度,預設用0 填充,可指定填充方式
>>> '{:^10}'.format('abc')
' abc '
>>> '{:<10}'.format('abc')
'abc '
>>> '{:>10}'.format('abc')
' abc'
>>> '{:2>10}'.format('abc')
'2222222abc'
三、定義物件屬性
class Person:
def __init__(self,name,age):
self.name,self.age = name,age
def __str__(self):
return 'This guy is {self.name},is {self.age} old'.format(self=self)
>>>str(Person('kzc',18))
'This guy is kzc,is 18 old'