Python如何優美地格式化字符串?

上次Paradoxical使用format()實現了營銷號生成器的功能,這次就來教大家format()的常見使用方式吧~

字符串的format()傳入的是不定長參數和關鍵字參數(有關不定長參數和關鍵字參數請看這裏→戳我)。

圖片


按照位置傳遞參數當花括號內沒有字段的時候,則按照參數的順序去格式化,參數的個數只能多不能少。

#定義字符串s = '{}{}{}'
#按照個數傳入參數s.format(1, 2, 3)
#傳入多餘的參數,多餘的參數不會被使用s.format(1984)
#傳入比需要的數量少的參數,會報錯s.format(19)

圖片


根據字段傳入參數當花括號裏有字段的時候,需要傳入關鍵字參數。

#定義字符串s = '{a}{b}{c}'
#按照花括號內的字段傳入參數s.format(a='南山', b='公園', c='游泳池')
#調換順序也可s.format(b='公園', a='南山', c='游泳池')
#所有字段都需要獲取參數s.format(b='公園', a='南山')

圖片


通過正整數傳遞參數因爲不定長參數會以元組的形式接收傳入的參數,所以可以在花括號內傳入正整數去獲取不定長參數的元素。相當於tuple[n]。

s = '{0}{1}{2}'#將第0、第1、第2個參數按順序傳入字符串s.format(3, 2, 1)
s = '{0}{1}{0}'#將第0、第1、第0個參數按順序傳入字符串s.format('S', 'O')

圖片


通過操作符獲取參數的內容當傳入的參數是字符串、列表、元組等可以用“[]”獲取元素的類型時,可以通過“[]”獲取參數的內容。同理可以通過“.”獲取實例的屬性。

#用列表推導式創建列表l = [i for i in range(10)]#定義字符串s = '{0[1]}{0[8]}{0[7]}{0[4]}'#用第0個參數的第1個、第8個、第7個、第4個元素格式化字符串s.format(l)
#定義字典dic = {'addr''南山公園''fac''游泳池'}#定義字符串s = '{0[addr]}{0[fac]}'#用第0個參數的addr字段、fac字段格式化字符串s.format(dic)
#定義字符串s = '{dict[addr]}{dict[fac]}'#用dict參數的addr字段、fac字段格式化字符串s.format(dict=dic)
#定義file類class file:  def __init__(self, name, f_type):    self.name = name    self.f_type = f_type#創建file類的實例f = file('test', 'txt')s = '{file.name} {file.f_type}'#根據file參數的name、f_type屬性格式化字符串s.format(file=f)

圖片


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章