基礎教程 Python格式化字串(格式化輸出)

2021-10-05 21:20:14 字數 2767 閱讀 9452

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

表 1 python 轉換說明符

轉換說明符

解釋%d、%i

轉換為帶符號的十進位制整數

%o轉換為帶符號的八進位制整數

%x、%x

轉換為帶符號的十六進製制整數

%e轉化為科學計數法表示的浮點數(e 小寫)

%e轉化為科學計數法表示的浮點數(e 大寫)

%f、%f

轉化為十進位制浮點數

%g智慧型選擇使用 %f 或 %e 格式

%g智慧型選擇使用 %f 或 %e 格式

%c格式化字元及其 ascii 碼

%r使用 repr() 函式將表示式轉換為字串

%s使用 str() 函式將表示式轉換為字串

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

【例項】輸出乙個整數:

age = 8

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

執行結果:

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

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

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

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

name = "c語言中文網"

age = 8

url = ""

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

執行結果:

c語言中文網已經8歲了,它的**是。

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

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

請看下面的演示:

n = 1234567

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

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

url = "python/"

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

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

執行結果:

n(10):   1234567.

n(5):1234567.

url(35): python/.

url(20):python/.

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

你看,這裡指定的只是最小寬度,當資料的實際寬度足夠時,指定的寬度就沒有實際意義了。

預設情況下,print() 輸出的資料總是右對齊的。也就是說,當資料不夠寬時,資料總是靠右邊輸出,而在左邊補充空格以達到指定的寬度。python 允許在最小寬度之前增加乙個標誌來改變對齊方式,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

Python基礎教程 格式化字串

1.字串格式化基礎 字串格式化相當於字串模板。也就是說,如果乙個字串有一部分是固定的,而另一部分是動態變化的,那麼就可以將固定的部分做成模板,然後那些動態變化的部分使用字串格式化操作符 替換。如一句問候語 hello 李寧 其中 hello 是固定的,但 李寧 可能變成任何乙個人的名字,如 賈伯斯 ...

Python 格式化字元

字串格式化操作符 只適用於字串型別,語法如下 format string string to convert format string為格式標記字串,形式為 cdoe string to convert 為要格式化的字串,如果是兩個以上,則需要用小括號括起來。格式化符號 說明 r 轉換成字元 as...

Python 格式化字元

字元 c 單個字元 b 二進位制整數 d 十進位制整數 i 十進位制整數 會自動將輸入的八進位制或十六進製制數轉換成十進位制 o 八進位制整數 x 十六進製制整數 s 字串 採用str 的顯示 r 字串 採用repr 的顯示 e 指數 基底寫為e e 指數 基底寫為e f 浮點數 f 浮點數,與上相...