溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python格式化輸出有哪些方式

發(fā)布時(shí)間:2020-08-26 09:31:13 來(lái)源:億速云 閱讀:128 作者:Leah 欄目:編程語(yǔ)言

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Python格式化輸出有哪些方式,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Python 提供了“%”對(duì)各種類(lèi)型的數(shù)據(jù)進(jìn)行格式化輸出,例如如下代碼:

price = 108
print ("the book's price is %s" % price)

上面程序中的 print 函數(shù)包含以下三個(gè)部分,第一部分是格式化字符串(相當(dāng)于字符串模板),該格式化字符串中包含一個(gè)“%s”占位符,它會(huì)被第三部分的變量或表達(dá)式的值代替;第二部分固定使用“%”作為分隔符。

格式化字符串中的“%s”被稱(chēng)為轉(zhuǎn)換說(shuō)明符(Conversion Specifier),其作用相當(dāng)于一個(gè)占位符,它會(huì)被后面的變量或表達(dá)式的值代替。“%s”指定將變量或值使用 str() 函數(shù)轉(zhuǎn)換為字符串。

如果格式化字符串中包含多個(gè)“%s”占位符,第三部分也應(yīng)該對(duì)應(yīng)地提供多個(gè)變量,并且使用圓括號(hào)將這些變量括起來(lái)。例如如下代碼:

user = "Charli"
age = 8
# 格式化字符串有兩個(gè)占位符,第三部分提供2個(gè)變量
print("%s is a %s years old boy" % (user , age))

在格式化字符串中難道只能使用“%s”嗎?還有其他轉(zhuǎn)換說(shuō)明符嗎?如果只有“%s”這一種形式,Python 的格式化功能未免也太單一了。

實(shí)際上, Python 提供了如下所示的轉(zhuǎn)換說(shuō)明符:

轉(zhuǎn)換說(shuō)明符說(shuō)明
%d,%i轉(zhuǎn)換為帶符號(hào)的十進(jìn)制形式的整數(shù)
%o轉(zhuǎn)換為帶符號(hào)的八進(jìn)制形式的整數(shù)
%x,%X轉(zhuǎn)換為帶符號(hào)的十六進(jìn)制形式的整數(shù)
%e轉(zhuǎn)化為科學(xué)計(jì)數(shù)法表示的浮點(diǎn)數(shù)(e 小寫(xiě))
%E轉(zhuǎn)化為科學(xué)計(jì)數(shù)法表示的浮點(diǎn)數(shù)(E 大寫(xiě))
%f,%F轉(zhuǎn)化為十進(jìn)制形式的浮點(diǎn)數(shù)
%g智能選擇使用 %f 或 %e 格式
%G智能選擇使用 %F 或 %E 格式
%c格式化字符及其 ASCII 碼
%r使用 repr() 將變量或表達(dá)式轉(zhuǎn)換為字符串
%s使用 str() 將變量或表達(dá)式轉(zhuǎn)換為字符串

當(dāng)使用上面的轉(zhuǎn)換說(shuō)明符時(shí),可指定轉(zhuǎn)換后的最小寬度,例如如下代碼:

num = -28
print("num is: %6i" % num)
print("num is: %6d" % num)
print("num is: %6o" % num)
print("num is: %6x" % num)
print("num is: %6X" % num)
print("num is: %6s" % num)

運(yùn)行上面代碼,可以看到如下輸出結(jié)果:

num is:    -28
num is:    -28
num is:    -34
num is:    -1c
num is:    -1C
num is:    -28

從上面的輸出結(jié)果可以看出,此時(shí)指定了字符串的最小寬度為 6,因此程序轉(zhuǎn)換數(shù)值時(shí)總寬度為 6,程序自動(dòng)在數(shù)值前面補(bǔ)充了三個(gè)空格。

在默認(rèn)情況下,轉(zhuǎn)換出來(lái)的字符串總是右對(duì)齊的,不夠?qū)挾葧r(shí)左邊補(bǔ)充空格。Python 也允許在最小寬度之前添加一個(gè)標(biāo)志來(lái)改變這種行為,Python 支持如下標(biāo)志:

-:指定左對(duì)齊。

+:表示數(shù)值總要帶著符號(hào)(正數(shù)帶“+”,負(fù)數(shù)帶“-”)。

0:表示不補(bǔ)充空格,而是補(bǔ)充 0。

例如如下代碼

num2 = 30
# 最小寬度為0,左邊補(bǔ)0
print("num2 is: %06d" % num2)
# 最小寬度為6,左邊補(bǔ)0,總帶上符號(hào)
print("num2 is: %+06d" % num2)
# 最小寬度為6,右對(duì)齊
print("num2 is: %-6d" % num2)

運(yùn)行上面代碼,可以看到如下輸出結(jié)果:

num2 is: 000030
num2 is: +00030
num2 is: 30

對(duì)于轉(zhuǎn)換浮點(diǎn)數(shù),Python 還允許指定小數(shù)點(diǎn)后的數(shù)字位數(shù):如果轉(zhuǎn)換的是字符串,Python 允許指定轉(zhuǎn)換后的字符串的最大字符數(shù)。這個(gè)標(biāo)志被稱(chēng)為精度值,該精度值被放在最小寬度之后,中間用點(diǎn) () 隔開(kāi)。例如如下代碼:

my_value = 3.001415926535
# 最小寬度為8,小數(shù)點(diǎn)后保留3位
print("my_value is: %8.3f" % my_value)
# 最小寬度為8,小數(shù)點(diǎn)后保留3位,左邊補(bǔ)0
print("my_value is: %08.3f" % my_value)
# 最小寬度為8,小數(shù)點(diǎn)后保留3位,左邊補(bǔ)0,始終帶符號(hào)
print("my_value is: %+08.3f" % my_value)
the_name = "Charlie"
# 只保留3個(gè)字符
print("the name is: %.3s" % the_name) # 輸出Cha
# 只保留2個(gè)字符,最小寬度10
print("the name is: %10.2s" % the_name)

運(yùn)行上面代碼,可以看到如下輸出結(jié)果:

my_value is:    3.001
my_value is: 0003.001
my_value is: +003.001
the name is: Cha
the name is:         Ch

上述就是小編為大家分享的Python格式化輸出有哪些方式了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI