Python中有一種格式化字符串的方法叫做百分號(hào)格式化(%格式化),它可以方便地向字符串中插入變量,類(lèi)似于C語(yǔ)言中的printf()函數(shù)。
%格式化的語(yǔ)法很簡(jiǎn)單,就是在字符串中使用百分號(hào)(%)作為占位符,然后再在字符串末尾使用%運(yùn)算符將占位符和變量值對(duì)應(yīng)起來(lái)。
# 一個(gè)簡(jiǎn)單的例子 name = "Bob" age = 27 print("My name is %s, and I am %d years old." % (name, age)) # 輸出:My name is Bob, and I am 27 years old.
上面的例子中,我們定義了兩個(gè)變量name和age,然后在字符串中使用%s和%d作為占位符,表示字符串和整數(shù)類(lèi)型的變量,最后使用%運(yùn)算符將占位符和實(shí)際變量值對(duì)應(yīng)起來(lái)。
%格式化支持多種類(lèi)型的占位符,包括字符串(%s)、整數(shù)(%d)、浮點(diǎn)數(shù)(%f)、布爾值(%s)、日期(%x和%X)、字典(%s)、元組(%s)等等。
除了使用占位符和%運(yùn)算符,我們還可以使用關(guān)鍵字參數(shù)和字典參數(shù)來(lái)進(jìn)行格式化。
# 使用關(guān)鍵字參數(shù) print("My name is %(name)s, and I am %(age)d years old." % {'name': 'Bob', 'age': 27}) # 輸出:My name is Bob, and I am 27 years old. # 使用字典參數(shù) person = {'name': 'Bob', 'age': 27} print("My name is %(name)s, and I am %(age)d years old." % person) # 輸出:My name is Bob, and I am 27 years old.
關(guān)鍵字參數(shù)和字典參數(shù)可以使語(yǔ)法更加簡(jiǎn)潔,而且可以實(shí)現(xiàn)更加復(fù)雜的格式化需求,例如格式化一個(gè)HTML模板。
總之,%格式化是Python中非常有用的一種字符串格式化方式,尤其適合快速地生成字符串,并且具有非常強(qiáng)的可讀性和可擴(kuò)展性。