Python 佔位符格式化詳解

pythontab發表於2017-11-22

佔位符,顧名思義就是插在輸出裡站位的符號。佔位符是絕大部分程式語言都存在的語法, 而且大部分都是相通的, 它是一種非常常用的字串格式化的方式。

1. 常用佔位符的含義

s : 獲取傳入物件的__str__方法的返回值,並將其格式化到指定位置

r : 獲取傳入物件的__repr__方法的返回值,並將其格式化到指定位置

c : 整數:將數字轉換成其unicode對應的值,10進位制範圍為 0 <= i <= 1114111(py27則只支援0-255);字元:將字元新增到指定位置

o : 將整數轉換成 八  進製表示,並將其格式化到指定位置

x : 將整數轉換成十六進位制表示,並將其格式化到指定位置

d : 將整數、浮點數轉換成 十 進製表示,並將其格式化到指定位置

e : 將整數、浮點數轉換成科學計數法,並將其格式化到指定位置(小寫e)

E : 將整數、浮點數轉換成科學計數法,並將其格式化到指定位置(大寫E)

f :  將整數、浮點數轉換成浮點數表示,並將其格式化到指定位置(預設保留小數點後6位)

F : 同上

g : 自動調整將整數、浮點數轉換成 浮點型或科學計數法表示(超過6位數用科學計數法),並將其格式化到指定位置(如果是科學計數則是e;)

G : 自動調整將整數、浮點數轉換成 浮點型或科學計數法表示(超過6位數用科學計數法),並將其格式化到指定位置(如果是科學計數則是E;)

% : 當字串中存在格式化標誌時,需要用 %%表示一個百分號;

2. 常用佔位符應用舉例

1. 格式化字串

>>> print ("This website name is %s" % ("pythontab.com"))
this website name is pythontab.com
>>>

2. 格式化整數

>>> print ("The rank score is %d" % (100.0))
>>> The rank score is 100
>>>

3. 格式化浮點數

>>> print ("Yao Ming's height is %f m"%(2.29))
Yao Ming's height is 2.290000 m
>>>

4. 格式化浮點數(指定保留小數點位數)

>>> print ("Yao Ming's height is %.1f m"%(2.29))
Yao Ming's height is 2.3 m
>>>

5. 指定佔位符寬度

>>> print ("Name : %10s, Age : %9d, Height: %8.2f"%("Yao Ming", 37, 2.29))
Name :   Yao Ming, Age :        37, Height :     2.29
>>>

格式比較難看, 下面我們來做一下對齊

6. 指定佔位符寬度 - 左對齊

>>> print ("Name : %-10s, Age : %-9d, Height : %-8.2f"%("Yao Ming", 37, 2.29))
Name : Yao Ming  , Age : 37       , Height : 2.29    
>>>

注:

格式化可選標誌符, 可選引數

+       右對齊;正數前加正好,負數前加負號;

-       左對齊;正數前無符號,負數前加負號;

空格     右對齊;正數前加空格,負數前加負號;

0       右對齊;正數前無符號,負數前加負號;用0填充空白處


如: -10s, 表示10個字串位置, 左對齊,後面用空格填充

7. 指定佔位符 - 用0當佔位符

>>> print ("Name : %-10s, Age : %09d, Height : %08.2f"%("Yao Ming", 37, 2.29))
Name : Yao Ming  , Age : 000000037, Height : 00002.29
>>>

3. 總結

佔位符的使用非常常見, 也非常實用, 它可以很好的幫助我們解決一些字串格式化的問題, 變換出多種用法, 一些常用的佔位符大家可以記住, 以便提升程式設計效率。


相關文章