Python符串格式化輸出

print()函數使用以%開頭的轉換說明符對各種類型的數據進行格式化輸出,具體請看下錶。

轉換說明符只是一個佔位符,它會被後面表達式(變量、常量、數字、字符串、加減乘除等各種形式)的值代替。

 

【實例】輸出一個整數:

age=8

print("C語言中文網已經%d歲了!"%age)

運行結果:

C語言中文網已經8歲了!

 

在print()函數中,由引號包圍的是格式化字符串,它相當於一個字符串模板,可以放置一些轉換說明符(佔位符)。本例的格式化字符串中包含一個%s說明符,它最終會被後面的age變量的值所替代。

中間的%是一個分隔符,它前面是格式化字符串,後面是要輸出的表達式。

格式化字符串中也可以包含多個轉換說明符,這個時候也得提供多個表達式,用以替換對應的轉換說明符;多個表達式必須使用小括號()包圍起來。請看下面的例子:

name="C語言中文網"

age=8

url="http://c.biancheng.net/"

print("%s已經%d歲了,它的網址是%s。"%(name,age,url))

運行結果:

C語言中文網已經8歲了,它的網址是http://c.biancheng.net/。

總之,有幾個佔位符,後面就得跟着幾個表達式。

指定最小輸出寬度

當使用表1中的轉換說明符時,可以使用下面的格式指定最小輸出寬度(至少佔用多少個字符的位置):

%10d表示輸出的整數寬度至少爲10;

%20s表示輸出的字符串寬度至少爲20。

n=1234567

print("n(10):%10d."%n)

print("n(5):%5d."%n)

url="http://c.biancheng.net/python/"

print("url(35):%35s."%url)

print("url(20):%20s."%url)

運行結果:

n(10):1234567.

n(5):1234567.

url(35):http://c.biancheng.net/python/.

url(20):http://c.biancheng.net/python/.

 

從運行結果可以發現,對於整數和字符串,當數據的實際寬度小於指定寬度時,會在左側以空格補齊;當數據的實際寬度大於指定寬度時,會按照數據的實際寬度輸出。

指定對齊方式

默認情況下,print()輸出的數據總是右對齊的。也就是說,當數據不夠寬時,數據總是靠右邊輸出,而在左邊補充空格以達到指定的寬度。Python允許在最小寬度之前增加一個標誌來改變對齊方式,Python支持的標誌如下:

 

幾點說明:

對於整數,指定左對齊時,在右邊補0是沒有效果的,因爲這樣會改變整數的值。

對於小數,以上三個標誌可以同時存在。

對於字符串,只能使用-標誌,因爲符號對於字符串沒有意義,而補0會改變字符串的值。

n=123456

#%09d表示最小寬度爲9,左邊補0

print("n(09):%09d"%n)

#%+9d表示最小寬度爲9,帶上符號

print("n(+9):%+9d"%n)

f=140.5

#%-+010f表示最小寬度爲10,左對齊,帶上符號

print("f(-+0):%-+010f"%f)

s="Hello"

#%-10s表示最小寬度爲10,左對齊

print("s(-10):%-10s."%s)

運行結果:

n(09):000123456

n(+9):+123456

f(-+0):+140.500000

s(-10):Hello.

指定小數精度

對於小數(浮點數),print()還允許指定小數點後的數字位數,也即指定小數的輸出精度。

精度值需要放在最小寬度之後,中間用點號.隔開;也可以不寫最小寬度,只寫精度。具體格式如下:

%m.nf

%.nf

m表示最小寬度,n表示輸出精度,.是必須存在的。

 

f=3.141592653

#最小寬度爲8,小數點後保留3位

print("%8.3f"%f)

#最小寬度爲8,小數點後保留3位,左邊補0

print("%08.3f"%f)

#最小寬度爲8,小數點後保留3位,左邊補0,帶符號

print("%+08.3f"%f)

運行結果:

3.142

0003.142

+003.142

作者:QinL

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章