Python3內(nèi)置模塊pprint讓打印比print更美觀詳解
概述
在我們使用內(nèi)置打印函數(shù)print時(shí),打印出的Python數(shù)據(jù)結(jié)構(gòu)對(duì)象總是一行的輸出的方式,這樣對(duì)數(shù)據(jù)結(jié)構(gòu)較復(fù)雜或數(shù)據(jù)較多的對(duì)象的顯示并不美觀,這時(shí)我們可以利用pprint輸出美化數(shù)據(jù)結(jié)構(gòu)對(duì)象。
pprint方法概覽
美化輸出
我們可以利用pprint中的PrettyPrinter控制輸出的打印時(shí)的縮進(jìn),行寬、甚至打印深度等,定義類(lèi)如下
class pprint.PrettyPrinter(indent = 1,width = 80,depth = None,stream = None,*,compact = False )
- indent 縮進(jìn)
- width 寬度
- depth 打印深度
- stream 指輸出流對(duì)象,stream = None輸出流對(duì)象默認(rèn)是sys.stdout
- compact 如果compact為false(默認(rèn)值),則長(zhǎng)序列中的每個(gè)項(xiàng)目將在單獨(dú)的行上進(jìn)行格式化。如果compact為true,則將在每個(gè)輸出行上格式化適合寬度的項(xiàng)目。
import pprint L = [str(i)*20 for i in range(10)] pp = pprint.PrettyPrinter(indent=4) pp.pprint(L) print(L)
示例結(jié)果:
[ '00000000000000000000',
'11111111111111111111',
'22222222222222222222',
'33333333333333333333',
'44444444444444444444',
'55555555555555555555',
'66666666666666666666',
'77777777777777777777',
'88888888888888888888',
'99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']
對(duì)象字符串
我們也可以將目標(biāo)對(duì)象的格式化表示形式返回為字符串。 indent, width,depth和compact將PrettyPrinter 作為格式化參數(shù)傳遞給構(gòu)造函數(shù),定義類(lèi)如下
L = [str(i)*20 for i in range(10)] pp = pprint.pformat(L, indent=4) print(pp) print(L)
示例結(jié)果:
[ '00000000000000000000',
'11111111111111111111',
'22222222222222222222',
'33333333333333333333',
'44444444444444444444',
'55555555555555555555',
'66666666666666666666',
'77777777777777777777',
'88888888888888888888',
'99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']
格式化打印
輸出格式的對(duì)象字符串到指定的輸出流,最后以換行符結(jié)束,定義類(lèi)如下
import pprint L = [str(i)*20 for i in range(10)] pprint.pprint(L, indent=4) print(L)
示例結(jié)果:
[ '00000000000000000000',
'11111111111111111111',
'22222222222222222222',
'33333333333333333333',
'44444444444444444444',
'55555555555555555555',
'66666666666666666666',
'77777777777777777777',
'88888888888888888888',
'99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']
可讀性
判斷對(duì)象object的字符串對(duì)象是否可讀,True可讀,反之則反。
import pprint L = [str(i)*20 for i in range(10)] B = pprint.isreadable(L) print(B)
示例結(jié)果:
True
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
詳解Python實(shí)現(xiàn)字典合并的四種方法
這篇文章主要為大家詳細(xì)介紹了Python的合并字典的四種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03簡(jiǎn)單談?wù)刾ython中的Queue與多進(jìn)程
本文給大家簡(jiǎn)單總結(jié)了下再Python中的隊(duì)列對(duì)象(queue)以及多進(jìn)程(multiprocessing),非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下2016-08-08關(guān)于scipy.optimize函數(shù)使用及說(shuō)明
這篇文章主要介紹了關(guān)于scipy.optimize函數(shù)使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Python + selenium + requests實(shí)現(xiàn)12306全自動(dòng)搶票及驗(yàn)證碼破解加自動(dòng)點(diǎn)擊功能
這篇文章主要介紹了Python + selenium + requests實(shí)現(xiàn)12306全自動(dòng)搶票及驗(yàn)證碼破解加自動(dòng)點(diǎn)擊功能,需要的朋友可以參考下2018-11-11python async with和async for的使用
這篇文章主要介紹了python async with和async for的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06