Python字串格式化

2022-02-13 09:22:30 字數 1851 閱讀 3198

字串格式化話的標準形式為 "template string " % (data)

%+8.6f
轉換型別表見pythonessentialreference-p-80。

"%d" % 18
輸出結果為「18」,按照上面的格式,這個是最簡單的字串模板,由型別轉換表只知道,佔位符%d會被乙個整數替換,而這個整數 就在%的後面data所在的位置,同理,可以使用

"%d %f" % (19,19.1)
當多於乙個數的時候將其表示為元組的形式。

"%10d" % 18
將會輸出" 18",總共佔據了10個字元的寬度,這裡的10,就是最小寬度的標誌。而上面的轉換標誌則是"+""-"或者「0」之間的乙個

比如

"%-10d" % 18
輸出結果就變成了「18 」

"%-10.5f" % 18.3
輸出為:"18.30000 ",小數部分為5位,不足使用0填充,整個字串為10位,不足用空格填充,左對齊。這個格式 就組合了所有的模板型別,用-表示左對齊,空格填充,10表示最小長度,5表示小數部分長度,這裡注意了,如果整數 部分長度加上小數點後面要求的最小長度大於其前面要求的整體的最小長度,則整體的最小長度無效。最後的f表示浮點數。

"%-*.*f" % (10,5,18.3)
將和上面的示例俄得到一樣的結果,可以猜測出,這裡的*起到了佔位符的作用,使得最小長度在後面的data區指定。

nameage=

"wang's age is %(wang)d" % nameage

輸出結果為"wang's age is 11",這個結構比上面的都要複雜,而且也和之前介紹的標準形式不相同。 這裡用到了列表,並用%(key)作為佔位符,後面接轉換型別d,後面的data區用乙個含有key的字典。可以直接得到相應的value。 這裡的d還可以換成上面複雜的格式模板,如"-10.5f"

上面的示例都是使用的%表示data區,並且格式相對穩定,只是比c中多了乙個字典的方式,其他的區別不大。 而python的字串提供了一種更高階的方法。

s.format(*args,*kwargs)
該形式可認為是一種函式呼叫。

",,".format(one,2,3)
結果為"one,2,1",這個過程是使用作為佔位符,後面的args列表中相應下標的資料會替換之。

",,,".format(one,2,3,str="string")
結果為"one,2,1,string",由上面可以前3個依次被列表的索引所替換,而最後乙個則被*kwargs字典所替換,這樣就 不止侷限於index了。

如果列表中的元素是字典,那麼還可以用的形式直接替換字典裡面的值。如下例

nameage=

"wang's age is d".format(nameage)

結果如上面的示例5結果一樣。

對資料的格式還可以進行進一步的控制,如下例

",,".format(one,2,3.2,str="string")
結果為"stirng , 1.30000,string "

在原有的基礎上加上冒號和標準形式中定義的格式轉換符即可,但是這裡要注意了,其對齊不在用「+」和「-」 而是

在上面對齊格式前面加字元表示填充符。如「=^」則為中間對齊,空格用=填充。其格式轉換符也有點區別。其表見 pythonessentialreference-p-73

Python 字串格式化

字串格式化 s 格式化為字串 format hello,s.s enough for ya?values world hot print format values hello,world.hot enough for ya?f 格式化為實數 浮點數 format pi with three dec...

python字串格式化

字串的格式化 在python中也有類似於c中的printf 的格式輸出標記。在python中格式化輸出字串使用的是 運算子,通用的形式為 其中,左邊部分的 格式標記字串 可以完全和c中的一致。右邊的 值組 如果有兩個及以上的值則需要用小括號括起來,中間用短號隔開。重點來看左邊的部分。左邊部分的最簡單...

Python字串格式化

字串的格式化 在python中也有類似於c中的printf 的格式輸出標記。在python中格式化輸出字串使用的是 運算子,通用的形式為 其中,左邊部分的 格式標記字串 可以完全和c中的一致。右邊的 值組 如果有兩個及以上的值則需要用小括號括起來,中間用短號隔開。重點來看左邊的部分。左邊部分的最簡單...