自python2.6開始,新增了一種格式化字串的函式str.format(),可謂威力十足。那麼,他跟之前的%型格式化字串相比,有什麼優越的存在呢?讓我們來揭開它羞答答的面紗。
語法
它通過{}和:來代替%。
「對映」示例
通過位置
in [1]: ','.format('kzc',18)
out[1]: 'kzc,18'
in [2]: '{},{}'.format('kzc',18)
out[2]: 'kzc,18'
in [3]: ',,'.format('kzc',18)
out[3]: '18,kzc,18'
字串的format函式可以接受不限個引數,位置可以不按順序,可以不用或者用多次,不過2.6不能為空{},2.7才可以。
通過關鍵字引數
in [5]: ','.format(age=18,name='kzc')
out[5]: 'kzc,18'
通過物件屬性
class person:
def __init__(self,name,age):
self.name,self.age = name,age
def __str__(self):
return 'this guy is ,is old'.format(self=self)
in [2]: str(person('kzc',18))
out[2]: 'this guy is kzc,is 18 old'
通過下標
in [7]: p=['kzc',18]
in [8]: ','.format(p)
out[8]: 'kzc,18'
有了這些便捷的「對映」方式,我們就有了偷懶利器。基本的python知識告訴我們,list和tuple可以通過「打散」成普通引數給函式,而dict可以打散成關鍵字引數給函式(通過和*)。所以可以輕鬆的傳個list/tuple/dict給format函式。非常靈活。
格式限定符
它有著豐富的的「格式限定符」(語法是{}中帶:號),比如:
填充與對齊
填充常跟對齊一起使用
^、分別是居中、左對齊、右對齊,後面帶寬度
:號後面帶填充的字元,只能是乙個字元,不指定的話預設是用空格填充
比如
in [15]: ''.format('189')
out[15]: ' 189'
in [16]: ''.format('189')
out[16]: '00000189'
in [17]: ''.format('189')
out[17]: 'aaaaa189'
精度與型別f
精度常跟型別f一起使用
in [44]: ''.format(321.33345)
out[44]: '321.33'
其中.2表示長度為2的精度,f表示float型別。
其他型別
主要就是進製了,b、d、o、x分別是二進位制、十進位制、八進位制、十六進製制。
in [54]: ''.format(17)
out[54]: '10001'
in [55]: ''.format(17)
out[55]: '17'
in [56]: ''.format(17)
out[56]: '21'
in [57]: ''.format(17)
out[57]: '11'
用,號還能用來做金額的千位分隔符。
in [47]: ''.format(1234567890)
out[47]: '1,234,567,890'
Python強大的格式化format
format kzc 18 kzc,18 format kzc 18 kzc,18 format kzc 18 18,kzc,18 format age 18,name kzc kzc,18 通過物件屬性 class person def init self,name,age self.name,s...
Python強大的格式化format
自python2.6開始,新增了一種格式化字串的函式str.format 可謂威力十足。那麼,他跟之前的 型格式化字串相比,有什麼優越的存在呢?讓我們來揭開它羞答答的面紗。語法 它通過 和 來代替 對映 示例 通過位置 in 1 format kzc 18 out 1 kzc,18 in 2 for...
python 格式化和format格式化
格式 name flags width precision typecode name 可選,用於選擇指定的key flags 可選,可提供的值有 右對齊,整數前加正號,負數前加負號 左對齊,正數錢無符號,負數前加負號 空格 右對齊 正數前加空格,負數前加負號 0 右對齊,正數前無符號,負數前加負號...