再见,print
Python知识圈
共 2046字,需浏览 5分钟
· 2020-06-02
点击上方Python知识圈,设为星标
回复1024获取Python资料
阅读文本大概需要 3 分钟
点击「阅读原文」查看pk哥原创精品视频。
学python学到的第一个函数就是print
print("hello world")
不管是新手还是老手,都会经常用来调试代码。但是对于稍微复杂的对象,打印出来就的时候可读性就没那么好了。
例如:
>>> coordinates = [
... {
... "name": "Location 1",
... "gps": (29.008966, 111.573724)
... },
... {
... "name": "Location 2",
... "gps": (40.1632626, 44.2935926)
... },
... {
... "name": "Location 3",
... "gps": (29.476705, 121.869339)
... }
... ]
>>> print(coordinates)
[{'name': 'Location 1', 'gps': (29.008966, 111.573724)}, {'name': 'Location 2', 'gps': (40.1632626, 44.2935926)}, {'name': 'Location 3', 'gps': (29.476705, 121.869339)}]
>>>
打印一个很长的列表时,全部显示在一行,两个屏幕都装不下。
于是 pprint 出现了
pprint
pprint 的全称是Pretty Printer,更美观的 printer。在打印内容很长的对象时,它能够以一种格式化的形式输出。
>>> import pprint
>>> pprint.pprint(coordinates)
[{'gps': (29.008966, 111.573724), 'name': 'Location 1'},
{'gps': (40.1632626, 44.2935926), 'name': 'Location 2'},
{'gps': (29.476705, 121.869339), 'name': 'Location 3'}]
>>>
当然,你还可以自定义输出格式
# 指定缩进和宽度
>>> pp = pprint.PrettyPrinter(indent=4, width=50)
>>> pp.pprint(coordinates)
[ { 'gps': (29.008966, 111.573724),
'name': 'Location 1'},
{ 'gps': (40.1632626, 44.2935926),
'name': 'Location 2'},
{ 'gps': (29.476705, 121.869339),
'name': 'Location 3'}]
但是pprint还不是很优雅,因为打印自定义的类时,输出的是对象的内存地址相关的一个字符串
class Person():
def __init__(self, age):
self.age = age
p = Person(10)
>>> print(p)
<__main__.Person object at 0x00BCEBD0>
>>> import pprint
>>> pprint.pprint(p)
<__main__.Person object at 0x00BCEBD0>
beeprint
而用beeprint可以直接打印对象里面的属性值,省去了重写 __str__
方法的麻烦
from beeprint import pp
pp(p)
instance(Person):
age: 10
不同的是,print和pprint是python的内置模块,而 beeprint 需要额外安装。
-----------------------公众号:Python知识圈博客:www.pyzhishiquan.com知乎:Python知识圈微信视频号:菜鸟程序员 (分享有趣的编程技巧、Python技巧)bilibili:菜鸟程序员的日常(目前原创视频:16,累计播放量:55万)
一个学习Python的人,喜欢分享,喜欢搞事情!
长按下图二维码关注,和你一起领悟Python的魅力。
Python知识圈公众号的交流群已经建立,群里可以领取 Python 和人工智能学习资料,大家可以一起学习交流,效率更高,如果是想发推文、广告、砍价小程序的敬请绕道!一定记得备注「交流学习」,我会尽快通过好友申请哦!通过好友后私聊我「学习资料」或者「进群」都可以。
扫码添加,备注:交流学习
往期推荐010203
评论
全新 SOTA backbone | 2024年了,再见ViT系列Backbone,实数难得,不知道效果如何?
点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达在构建用于精确匹配的深度固定长度表示时,确定指纹上的密集特征点,特别是在像素 Level 上,具有重大意义。为了探索指纹匹配的可解释性,作者提出了一种多阶段可解释的指纹匹配网络,名为通过视觉 Transformer 进行指纹匹配的
小白学视觉
1114
再见八股文,我要去卷Vue3了。。。
本文推荐最近在考虑新机会的小伙伴阅读!前言上周和部门BP聊天,她说最近在boss上放出一个初级前端岗位,平均每天都能收到500多份简历。前端市场越来越卷,跳槽前做好技术进阶突击,才能稳拿offer。资料内容展示三个维度:资料框架 + 八股文+ Vue3面试题+算法题部分
前端达人
365