Python字符串格式化之使用format()方法
Python字符串類型的格式化
關(guān)于字符串的格式化,Python支持類似于C語(yǔ)言的printf()函數(shù)的格式化方法,也支持format()方法的格式化方法,因?yàn)镻ython更接近自然語(yǔ)言的復(fù)雜數(shù)據(jù)類型,無(wú)法全部通過(guò)類C的格式化方法,所以學(xué)Python著重使用format()方法進(jìn)行字符串的格式化。
一、format()函數(shù)的基本使用
1、 print(“{}{}”.format(a,b),這里{}成為槽,要把后邊f(xié)ormat里的內(nèi)容對(duì)應(yīng)放在里邊,假如a,b = 1,2 ,輸出的結(jié)果為12;
*2、*如果{}內(nèi)有標(biāo)號(hào),則后邊f(xié)ormat()里的東西按標(biāo)號(hào)來(lái)對(duì)應(yīng)輸出,如print(“{1}{0}”.format(a,b),按照以上初始條件,輸出結(jié)果為21,注意:標(biāo)號(hào)要從0開(kāi)始排序;
二、format()函數(shù)的格式控制
1、 分別使用< > ^表示左對(duì)齊、右對(duì)齊、中間對(duì)齊
s = "Hello"
print("{0:<30}".format(s))
print("{0:^30}".format(s))
print("{0:>30}".format(s))

注意:默認(rèn)按照左對(duì)齊
2、 空白位置的填充類型
填充是指標(biāo)定寬度內(nèi)空白位置用什么類型填充,* ^ 用*填充,-^用-填充
s = "welcome"
print("{0:*^30}".format(s))
print("{0:-^30}".format(s))
print("{0:=^30}".format(s))

3、 格式控制中的逗號(hào)用于顯示數(shù)字類型的千位分隔符
q = 45687296215.2
print("{0:-^20,}".format(q))
print("{0:-^20}".format(q)) #對(duì)比輸出

4、 精度
精度表示兩個(gè)含義,由小數(shù)點(diǎn)(.)開(kāi)頭,對(duì)于浮點(diǎn)數(shù),精度表示小數(shù)點(diǎn)后輸出的有效位數(shù),對(duì)于字符串,精度表示字符串輸出的最大長(zhǎng)度。
print("{0:.3f}".format(3.1415926))
print("{0:.3}".format("hello"))

注意:浮點(diǎn)數(shù)輸出時(shí)記得寫(xiě)f
5、類型
類型包括輸出整數(shù)類型和浮點(diǎn)數(shù)類型的控制規(guī)則
(一)整數(shù)類型
- 1> b:輸出整數(shù)的二進(jìn)制形式
- 2> c:輸出整數(shù)對(duì)應(yīng)的Unicode碼形式
- 3> d:輸出整數(shù)的十進(jìn)制形式
- 4> o:輸出整數(shù)的八進(jìn)制形式
- 5> x:輸出整數(shù)的小寫(xiě)十六進(jìn)制形式
- 6> X:輸出整數(shù)的大寫(xiě)十六進(jìn)制形式
print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(255))
注意要寫(xiě)上0
(二)浮點(diǎn)數(shù)類型
- 1> e:輸出浮點(diǎn)數(shù)對(duì)應(yīng)小寫(xiě)字母e的指數(shù)形式
- 2> E:輸出浮點(diǎn)數(shù)對(duì)應(yīng)大寫(xiě)字母E的指數(shù)形式
- 3> f:輸出浮點(diǎn)數(shù)的標(biāo)準(zhǔn)浮點(diǎn)形式
- 4> %:輸出浮點(diǎn)數(shù)的百分形式
print("{0:e},{0:E},{0:f},{0:%}".format(3.1415926))
print("{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.1415926))

注意,浮點(diǎn)數(shù)輸出盡量使用精度表示小數(shù)點(diǎn)后的寬度,有助于更好的控制格式。
三、 歸納總結(jié)

四、 小程序—繪制*三角
(1) 代碼部分
print("請(qǐng)問(wèn)你要建立幾層?")
N = eval(input())
for i in range(1,N*2 + 1,2):
s = i*'*'
print("{0:^{1}}".format(s,N*2))
(2) 運(yùn)行結(jié)果

(3) 代碼分析
- 注意我設(shè)置的步長(zhǎng)是2,所以截止條件是2*N + 1,否則只會(huì)出現(xiàn)N/2層
- 這里s = i* ‘*’,恰當(dāng)?shù)脑黾恿诵⌒切?/li>
好了,今天的詳解就到這里。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python aiohttp百萬(wàn)并發(fā)極限測(cè)試實(shí)例分析
這篇文章主要介紹了Python aiohttp百萬(wàn)并發(fā)極限測(cè)試,結(jié)合實(shí)例形式分析了Python異步編程基于aiohttp客戶端高并發(fā)請(qǐng)求的相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2019-10-10
利用Python實(shí)現(xiàn)自定義連點(diǎn)器
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)自定義連點(diǎn)器,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
pandas如何篩選某個(gè)列值是否位于某個(gè)列表內(nèi)
這篇文章主要介紹了pandas如何篩選某個(gè)列值是否位于某個(gè)列表內(nèi)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Python數(shù)據(jù)結(jié)構(gòu)之雙向鏈表詳解
單鏈表只有一個(gè)指向直接后繼的指針來(lái)表示結(jié)點(diǎn)間的邏輯關(guān)系,可以方便的從任一結(jié)點(diǎn)開(kāi)始查找其后繼結(jié)點(diǎn),但要找前驅(qū)結(jié)點(diǎn)則比較困難,雙向鏈表是為了解決這一問(wèn)題,使用兩個(gè)指針表示結(jié)點(diǎn)間的邏輯關(guān)系。本文將重點(diǎn)為大家介紹雙向鏈表的相關(guān)操作,需要的可以參考一下2022-01-01
利用Python實(shí)現(xiàn)個(gè)性化日歷
雖然市面上已經(jīng)存在現(xiàn)成的日歷功能,并且有第三方庫(kù)可以直接調(diào)用實(shí)現(xiàn),但我們?nèi)匀幌Mㄟ^(guò)自己編寫(xiě)日歷程序來(lái)引出我認(rèn)為好用的日歷實(shí)現(xiàn),所以下面就跟隨小編一起學(xué)習(xí)一下如何使用Python編寫(xiě)一個(gè)簡(jiǎn)單的日歷程序吧2024-02-02
如何利用Boost.Python實(shí)現(xiàn)Python C/C++混合編程詳解
這篇文章主要給大家介紹了關(guān)于如何利用Boost.Python實(shí)現(xiàn)Python C/C++混合編程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起看看吧2018-11-11

