上次Paradoxical使用format()實現了營銷號生成器的功能,這次就來教大家format()的常見使用方式吧~
字符串的format()傳入的是不定長參數和關鍵字參數(有關不定長參數和關鍵字參數請看這裏→戳我)。
按照位置傳遞參數當花括號內沒有字段的時候,則按照參數的順序去格式化,參數的個數只能多不能少。
#定義字符串
s = '{}{}{}'
#按照個數傳入參數
s.format(1, 2, 3)
#傳入多餘的參數,多餘的參數不會被使用
s.format(1, 9, 8, 4)
#傳入比需要的數量少的參數,會報錯
s.format(1, 9)
根據字段傳入參數當花括號裏有字段的時候,需要傳入關鍵字參數。
#定義字符串
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)