python3的pprint_Python3内置模块pprint让打印比print更美观详解

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-24 07:13   11   0

概述

在我们使用内置打印函数print时,打印出的Python数据结构对象总是一行的输出的方式,这样对数据结构较复杂或数据较多的对象的显示并不美观,这时我们可以利用pprint输出美化数据结构对象。

pprint方法概览

美化输出

我们可以利用pprint中的PrettyPrinter控制输出的打印时的缩进,行宽、甚至打印深度等,定义类如下

class pprint.PrettyPrinter(indent = 1,width = 80,depth = None,stream = None,*,compact = False )

indent 缩进

width 宽度

depth 打印深度

stream 指输出流对象,stream = None输出流对象默认是sys.stdout

compact 如果compact为false(默认值),则长序列中的每个项目将在单独的行上进行格式化。如果compact为true,则将在每个输出行上格式化适合宽度的项目。

import pprint

L = [str(i)*20 for i in range(10)]

pp = pprint.PrettyPrinter(indent=4)

pp.pprint(L)

print(L)

示例结果:

[ '00000000000000000000',

'11111111111111111111',

'22222222222222222222',

'33333333333333333333',

'44444444444444444444',

'55555555555555555555',

'66666666666666666666',

'77777777777777777777',

'88888888888888888888',

'99999999999999999999']

['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

对象字符串

我们也可以将目标对象的格式化表示形式返回为字符串。 indent, width,depth和compact将PrettyPrinter 作为格式化参数传递给构造函数,定义类如下

L = [str(i)*20 for i in range(10)]

pp = pprint.pformat(L, indent=4)

print(pp)

print(L)

示例结果:

[ '00000000000000000000',

'11111111111111111111',

'22222222222222222222',

'33333333333333333333',

'44444444444444444444',

'55555555555555555555',

'66666666666666666666',

'77777777777777777777',

'88888888888888888888',

'99999999999999999999']

['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

格式化打印

输出格式的对象字符串到指定的输出流,最后以换行符结束,定义类如下

import pprint

L = [str(i)*20 for i in range(10)]

pprint.pprint(L, indent=4)

print(L)

示例结果:

[ '00000000000000000000',

'11111111111111111111',

'22222222222222222222',

'33333333333333333333',

'44444444444444444444',

'55555555555555555555',

'66666666666666666666',

'77777777777777777777',

'88888888888888888888',

'99999999999999999999']

['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

可读性

判断对象object的字符串对象是否可读,True可读,反之则反。

import pprint

L = [str(i)*20 for i in range(10)]

B = pprint.isreadable(L)

print(B)

示例结果:

True

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

本文标题: Python3内置模块pprint让打印比print更美观详解

本文地址: http://www.cppcns.com/jiaoben/python/261379.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP