歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python字符串格式化

Python字符串格式化

日期:2017/3/1 9:18:42   编辑:Linux編程

字符串格式化話的標准形式為 "Template String " % (Data)

標准形式

%+8.6f
  • 轉換開始標志%
  • 轉換標志
  • 最小寬度
  • 精度,用小數點隔開
  • 轉換類型

轉換類型表見pythonEssentialReference-p-80。

示例1:

"%d" % 18

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

"%d %f" % (19,19.1)

當多於一個數的時候將其表示為元組的形式。

示例2:

"%10d" % 18

將會輸出" 18",總共占據了10個字符的寬度,這裡的10,就是最小寬度的標志。而上面的轉換標志則是"+""-"或者“0”之間的一個

  • “+” 右對齊,默認形式
  • “-” 左對齊,
  • “0” 用0填充空出的位置

比如

"%-10d" % 18

輸出結果就變成了“18 ”

示例3:

"%-10.5f" % 18.3

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

示例4:

"%-*.*f" % (10,5,18.3)

將和上面的示例俄得到一樣的結果,可以猜測出,這裡的*起到了占位符的作用,使得最小長度在後面的Data區指定。

示例5:

nameAge={"zhang":10,"wang":11,"li":32}
"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)

該形式可認為是一種函數調用。

示例6:

"{0},{2},{1}".format(one,2,3)

結果為"one,3,2",這個過程是使用{index}作為占位符,後面的args列表中相應下標的數據會替換之。

示例7:

"{0},{2},{1},{str}".format(one,2,3,str="string")

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

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

示例8:

nameAge={"zhang":10,"wang":11,"li":32}
"wang's age is {0[wang]}d".format(nameAge)

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

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

示例9:

"{0:10},{1:>10.5f},{str:10}".format(one,2,3.2,str="string")

結果為"stirng , 1.30000,string "

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

  • < 右對齊
  • > 左對齊
  • ^ 兩邊對齊

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

下面關於Python的文章您也可能喜歡,不妨看看:

Linux下Python的安裝以及注意事項 http://www.linuxidc.com/Linux/2015-11/124861.htm

Ubuntu 14.04 下安裝使用Python rq模塊 http://www.linuxidc.com/Linux/2015-08/122441.htm

無需操作系統直接運行 Python 代碼 http://www.linuxidc.com/Linux/2015-05/117357.htm

CentOS上源碼安裝Python3.4 http://www.linuxidc.com/Linux/2015-01/111870.htm

《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 語言的發展簡史 http://www.linuxidc.com/Linux/2014-09/107206.htm

Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved