1. 程式人生 > >[Python學習筆記]3——強大的.format

[Python學習筆記]3——強大的.format

記錄下平時發現的能簡化程式設計的函式、語法和格式等。

巧用.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'

Reference