当前位置:首页 > 科技  > 软件

Python基础:格式化输出

来源: 责编: 时间:2024-01-09 08:52:56 423观看
导读哈喽,大家好,我是了不起。在平时使用python编写代码时,控制台打印结果变量是必不可少的,而且很多初学者都会很频繁的使用python自带的print()方法在代码中打桩,以判断自己的代码逻辑获取值是正确的。但是在代码中如果需要

哈喽,大家好,我是了不起。HBD28资讯网——每日最新资讯28at.com

在平时使用python编写代码时,控制台打印结果变量是必不可少的,而且很多初学者都会很频繁的使用python自带的print()方法在代码中打桩,以判断自己的代码逻辑获取值是正确的。HBD28资讯网——每日最新资讯28at.com

HBD28资讯网——每日最新资讯28at.com

但是在代码中如果需要打印的字段中的数值非常多的时候,使用print()打印的话就会显得很凌乱,比如下面这种场景。HBD28资讯网——每日最新资讯28at.com

data = [{"first": "第一个值", "second": "第二个值", "third": "第三个值", "fourth": "第四个值", "fifth": "第五个值", },        {"first": [1, 2, 2, 3, 66, 765], "second": {"first":"1","second":"2","third":"3",}, "third": {"first":"1","second":"2","third":"3",}, "fourth": [1,2,3,4,5,], "fifth": ["frist",{"second":{"1":2,"2":"3"}}]}]

定义一个data变量赋值了一个典型的多维列表,然后每个字典中有多个键值对,这个时候使用print()方法打印:HBD28资讯网——每日最新资讯28at.com

>>> print(data)#输出结果为>>> [{'first': '第一个值', 'second': '第二个值', 'third': '第三个值', 'fourth': '第四个值', 'fifth': '第五个值'}, {'first': [1, 2, 2, 3, 66, 765], 'second': {'first': '1', 'second': '2', 'third': '3'}, 'third': {'first': '1', 'second': '2', 'third': '3'}, 'fourth': [1, 2, 3, 4, 5], 'fifth': ['frist', {'second': {'1': 2, '2': '3'}}]}]

使用print()打出来的结果直接会显示成为一条并且看起来会很凌乱,而且在pycharm工具中会显示成很长的一条数据,如果这个字典中的多维层级在多一些,我们想要取某一个关键值的就会很麻烦。HBD28资讯网——每日最新资讯28at.com

接下来给大家介绍两个其他的打印方法,分别为pprint和ic。HBD28资讯网——每日最新资讯28at.com

一、pprint

pprint(pretty-print)是 Python 标准库中的一个模块,可以将 Python 对象以一种可读性更高的格式打印出来。比起print()函数可以更好的处理复杂的数据结构,例如嵌套的列表、字典等。这里还是以上方的data变量为例,首先使用from pprint import pprint导入pprint,然后使用pprint()方法打印出来的结果如下。HBD28资讯网——每日最新资讯28at.com

>>> pprint(data)#输出结果为>>> [{'fifth': '第五个值',      'first': '第一个值',      'fourth': '第四个值',      'second': '第二个值',      'third': '第三个值'},     {'fifth': ['frist', {'second': {'1': 2, '2': '3'}}],      'first': [1, 2, 2, 3, 66, 765],      'fourth': [1, 2, 3, 4, 5],      'second': {'first': '1', 'second': '2', 'third': '3'},      'third': {'first': '1', 'second': '2', 'third': '3'}}]

可以清晰的看见,pprint()将打印的结果做了一个格式化的操作,将列表中每个字典键值进行分行显示,使字典的结构显示更加清晰,提高了可阅读性。HBD28资讯网——每日最新资讯28at.com

同时pprint()还有一些高级用法,我们可以定义打印数据的缩进、设置输出宽度等。HBD28资讯网——每日最新资讯28at.com

1.设置缩进

pprint()方法中有一个设置缩进的indent参数,如果想要每个层级之间缩进2个空格,则设置indent=2即可,示例如下HBD28资讯网——每日最新资讯28at.com

>>> pprint(data,indent=2)#输出结果为>>> [ { 'fifth': '第五个值',               'first': '第一个值',       'fourth': '第四个值',       'second': '第二个值',       'third': '第三个值'},     { 'fifth': ['frist', {'second': {'1': 2, '2': '3'}}],      'first': [1, 2, 2, 3, 66, 765],      'fourth': [1, 2, 3, 4, 5],      'second': {'first': '1', 'second': '2', 'third': '3'},      'third': {'first': '1', 'second': '2', 'third': '3'}}]

可以看见设置indent=2之后,pprint()将打印出的数据每个层级之间都缩进2个空格,这样在平时打印工作中合理设置一个缩进空格可以更加直观的阅读每个层级。HBD28资讯网——每日最新资讯28at.com

2.设置宽度

pprint ()默认的输出宽度为 80 个字符,可以通过设置 width 参数来更改输出宽度。示例如下:HBD28资讯网——每日最新资讯28at.com

>>> pprint(data,width=40)#输出结果为>>> [{'fifth': '第五个值',      'first': '第一个值',      'fourth': '第四个值',      'second': '第二个值',      'third': '第三个值'},     {'fifth': ['frist',                {'second': {'1': 2,                            '2': '3'}}],      'first': [1, 2, 2, 3, 66, 765],      'fourth': [1, 2, 3, 4, 5],      'second': {'first': '1',                 'second': '2',                 'third': '3'},      'third': {'first': '1',                'second': '2',                'third': '3'}}]

设置输出宽度后可以看到pprint()将打印的数据中每一个字典的键值都分行显示了。HBD28资讯网——每日最新资讯28at.com

HBD28资讯网——每日最新资讯28at.com

二、ic

ic模块取之于icecream库,它是一个python第三方库,在使用去需要下载icecream库并导入:HBD28资讯网——每日最新资讯28at.com

#pip安装icecream库pip install icecream#导入ic模块from icecream import ic

使用ic()方法打印对象数据时,它也是可以将数据进行格式化后打印出来最终的结果,数据格式化这一点和pprint()基本是相同的:HBD28资讯网——每日最新资讯28at.com

>>> ic(data)#输出结果为>>> ic| data: [{'fifth': '第五个值',                'first': '第一个值',                'fourth': '第四个值',                'second': '第二个值',                'third': '第三个值'},               {'fifth': ['frist', {'second': {'1': 2, '2': '3'}}],                'first': [1, 2, 2, 3, 66, 765],                'fourth': [1, 2, 3, 4, 5],                'second': {'first': '1', 'second': '2', 'third': '3'},                'third': {'first': '1', 'second': '2', 'third': '3'}}]

通过使用ic()方法输出后,不仅可以看到格式话的数据,并且它还自动将你输出的变量也显示了出来,这样也可以延伸到输出函数返回的值,具体如下:HBD28资讯网——每日最新资讯28at.com

#随意定义一个函数def func(one_data):    return one_data + 1    #给函数传入一个值为3,并打印函数返回值>>> ic(func(3))#得到打印的结果>>> ic| func(3): 4

这样把输出的函数和我们传入的值也自动显示出来了。HBD28资讯网——每日最新资讯28at.com

同时,以pycharm为例,使用ic()输出值后,在控制台会自动将你输出的值转变颜色,可以更加直观的看到输出的内容。HBD28资讯网——每日最新资讯28at.com

HBD28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-58981-0.htmlPython基础:格式化输出

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 详解Rust编程中的生命周期

下一篇: 订单视角看支付,你明白了吗?

标签:
  • 热门焦点
  • 一文搞定Java NIO,以及各种奇葩流

    大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,
  • 零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein“利用市场支配力量强迫服装厂商与之签订独家
  • 网传小米汽车开始筛选交付中心 建筑面积不低于3000平方米

    7月7日消息,近日有微博网友@长三角行健者爆料称,据经销商集团反馈,小米汽车目前已经开始了交付中心的筛选工作,要求候选场地至少有120个车位,建筑不能低
  • 半导体需求下滑 三星电子DS业务部门今年营业亏损预计超10万亿韩元

    7月17日消息,据外媒报道,去年下半年开始的半导体需求下滑,影响到了三星电子、SK海力士、英特尔等诸多厂商,营收明显下滑,部分厂商甚至出现了亏损。作为
  • 2299元起!iQOO Pad开启预售:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其搭载了天玑
  • 联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    ThinkBook Plus 是联想的一个特殊笔记本类别,它在封面放入了一块墨水屏,也给人留下了较为深刻的印象。据有人爆料,联想的下一款 ThinkBook Plus 可能更特殊,它
  • “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主“七王”在群里介绍一些刷单赚
Top