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

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

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

圖片


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

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

圖片


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

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

圖片


經過正整數傳遞參數由於不定長參數會以元組的形式接收傳入的參數,因此能夠在花括號內傳入正整數去獲取不定長參數的元素。至關於tuple[n]。orm

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

圖片


經過操做符獲取參數的內容當傳入的參數是字符串、列表、元組等能夠用「[]」獲取元素的類型時,能夠經過「[]」獲取參數的內容。同理能夠經過「.」獲取實例的屬性。blog

#用列表推導式建立列表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)

圖片

相關文章
相關標籤/搜索