Python知識(shí)分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
Python字符串格式化
發(fā)布于:2023-09-11 14:47:26
(假如點(diǎn)擊沒(méi)反應(yīng),多刷新兩次就OK!)

Python 7天快速入門完整視頻教程https://www.bilibili.com/video/BV1o84y1Z7J1

 

Python字符串格式化

 

 

我們前面學(xué)到字符串拼接,如果簡(jiǎn)單的2,3個(gè)字符串拼接那還算好,如果大于3個(gè)變量的拼接,就比較麻煩。還有一點(diǎn),就是字符串無(wú)法和和其他類型直接拼接,需要進(jìn)行類型轉(zhuǎn)換,也麻煩。這時(shí)候,Python提供了“%”對(duì)各種類型的數(shù)據(jù)進(jìn)行格式化輸出。

簡(jiǎn)單案例:

 

name = "小鋒"
print("我的姓名是 %s" % name)

 

輸出結(jié)果:

 

我的姓名是 小鋒

 

這里 %s 是占位符,第二個(gè) % 是分隔符,name就是變量了。這個(gè)很好理解。

 

我們?cè)倏匆粋€(gè)實(shí)例:

 

name = "小鋒"
age = 18
print("我的姓名是 %s,我今年%s歲了" % (name, age))

 

輸出結(jié)果:

 

我的姓名是 小鋒,我今年18歲了

 

這里多了一個(gè)int類型的age變量。我們輸出的時(shí)候,用兩個(gè)%s,中間依然用%間隔,第三塊,括號(hào)里兩個(gè)參數(shù)。注意參數(shù)的順序不能亂。

 

除了%s,還有很多占位符,如下表。我們現(xiàn)在掌握最基礎(chǔ)常用的%s,%d,%f,分別把參數(shù)或者表達(dá)式轉(zhuǎn)換成字符串,整型,浮點(diǎn)型。

 

Python字符串格式化  圖1

 

看下面實(shí)例:

 

name = "小鋒"
age = 18
height = 181.2
print("我的姓名是 %s,我今年%s歲了" % (name, age))
print("我的姓名是 %s,我今年%d歲了" % (name, age))
print("我的姓名是 %s,我今年%d歲了,身高%f" % (name, age, height))

 

運(yùn)行輸出:

 

我的姓名是 小鋒,我今年18歲了
我的姓名是 小鋒,我今年18歲了
我的姓名是 小鋒,我今年18歲了,身高181.200000

 

作業(yè):定義五個(gè)變量,分別是姓名,性別,語(yǔ)文成績(jī),數(shù)學(xué)成績(jī),英語(yǔ)成績(jī),并且賦值,最終打印出類似 我是某某,男,語(yǔ)文成績(jī):99.2,數(shù)學(xué)成績(jī):100,英語(yǔ)88.5。要求格式化輸出。

 

剛才我們打印身高,這個(gè)打印結(jié)果,后面多了五個(gè)0。這里就涉及到一個(gè)格式化精度控制。

我們可以使用輔助符號(hào)"m,n"來(lái)控制數(shù)據(jù)的寬度和精度;

  • m,控制寬度(包括小數(shù)點(diǎn)),注意,如果設(shè)置的寬度小于數(shù)字本身,則不生效。

  • n,控制小數(shù)點(diǎn)精度,注意,如果設(shè)置的寬度大于小數(shù)位數(shù),則進(jìn)行四舍五入。

 

我們先把前面的身高,加下小數(shù)精度 %.1f 這樣輸出結(jié)果就沒(méi)有0了。

我們?cè)倏匆幌聦?shí)例:

 

money1 = 99.99
money2 = 111.66
money3 = 10000
print("張三錢包余額:%10.2f元" % money1)
print("李四錢包余額:%10.1f元" % money2)
print("王五錢包余額:%10.2f元" % money3)

 

輸出結(jié)果:

 

張三錢包余額:     99.99元
李四錢包余額:     111.7元
王五錢包余額:  10000.00元

 

作業(yè):變量money4=1000.36 通過(guò)精度控制,保留一位小數(shù)字,數(shù)字寬度設(shè)置成8位。打印輸出結(jié)果。

 

其實(shí)我們發(fā)現(xiàn)上面的字符串格式化方式,雖然功能強(qiáng)大,但是寫(xiě)起來(lái)也不是太方便,這邊提供一種更加快捷優(yōu)雅的格式化方式。

語(yǔ)法是:f"內(nèi)容{變量}內(nèi)容";

這種方式缺點(diǎn)是無(wú)法進(jìn)行精度控制,以及也不關(guān)心類型,原值輸出。

看下下面的測(cè)試案例:

 

name = "小鋒"
age = 18
height = 181.2
print(f"我的姓名是 {name},我今年{age}歲了,身高{height}")

 

輸入結(jié)果:

 

我的姓名是 小鋒,我今年18歲了,身高181.2

 

作業(yè):定義五個(gè)變量,分別是姓名,性別,語(yǔ)文成績(jī),數(shù)學(xué)成績(jī),英語(yǔ)成績(jī),并且賦值,最終打印出類似 我是某某,男,語(yǔ)文成績(jī):99.2,數(shù)學(xué)成績(jī):100,英語(yǔ)88.5。要求用f快捷格式化方式輸出。