python2与python3的print及字符串格式化小结


Posted in Python onNovember 30, 2018

最近一直在用python写程序,对于python的print一直很恼火,老是不按照预期输出。在python2中print是一种输出语句,和if语句,while语句一样的东西,在python3中为了填补python2的各种坑,将print变为函数,因此导致python3中print的一些使用和python2很不一样。同时,python3大改python2中的字符串格式化,主推format()函数格式,用法很是灵活,让老用户一时摸不着头脑。今天特来总结一样print和format,也希望能帮助大家彻底理解它们。

1.print使用说明

在python2中print是这样的:

python2与python3的print及字符串格式化小结

在python3中print是以函数形式出现的:

python2与python3的print及字符串格式化小结

可以很明显的看出python3已经不支持print非函数格式了,在python3中使用print,必须加()。

我们在python3中help(print):  (注意,在python2中是不能help(print)的,因为其不是一个函数)

python2与python3的print及字符串格式化小结

可以清楚看到print函数的几个参数,file是文件描述符,flush控制是否冲刷缓冲区,end为结束字符,默认为换行,sep是输出的几个变量间的字符,默认为空格。弄清楚这些,以后操作起来就顺溜了。

试试看:

python2与python3的print及字符串格式化小结

上面是python3,可以看到改变end为空字符就能避免换行,下面是python2,奇怪的是说好的不换行还是换了。。。

谁能告诉我怎么打出a不换行啊。。。

总结一下,感觉python3还是非常优秀的,比python2上了一个档次,更加方便开发者了,与python2中异常丑陋的print >> file相比,print的函数化确实更上一层楼。print也就这样啦,下面来看看字符串格式化把。

2. 字符串格式

在python2中一直使用形如: “%s ....  %d” % (str, ... , intNum)格式化字符串的。这是python从C系列借鉴过来的语法,但是这种语法对于C这种静态语言足够快足够好,但是对于拥有很多先进数据结构的python来说就有点心有余来力不足了。为什么这么说呢?python的几把利刃:元组,列表,字典,集合等不适合用这种结构表示,这些利刃大多元素用下标表示,在这种结构中写出来很丑陋,不信你试试。

不管怎么样,这种表示方法还是必须掌握的,大多数情况下表示起来还是特别快速的。

字符串格式化代码:

看着这么的多格式,其实常用的也就那么几个,总结一些只需要记住: %d, %s, %f就OK了,其实等需要用的时候查找就可以了,毕竟我们大脑的资源是很宝贵的,可不能全用来记这些死板的东西

再来看看《Python基础编程》中对格式化输出的总结:

(1). %字符:标记转换说明符的开始

(2). 转换标志:-表示左对齐;+表示在转换值之前要加上正负号;“”(空白字符)表示正数之前保留空格;0表示转换值若位数不够则用0填充

(3). 最小字段宽度:转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从值元组中读出。

(4). 点(.)后跟精度值:如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将从元组中读出。

python2与python3的print及字符串格式化小结

下面来看看python3主打的格式化函数format().

字符串的format函数可以通过以下几个方式灵活的完成字符串格式化:

1. 通过位置标号

{0}表示第一个元素, {1}表示第二个元素, {2}表示第三个元素,以此类推。。。

注意在这里的顺序是按照format中的参数顺序而言的,在字符串中{0},{1}位置随便。

python2与python3的print及字符串格式化小结

2.通过关键字参数

3.通过属性和下标

python2与python3的print及字符串格式化小结

但是不知道字典怎么回事,和正常的键值索引不一样,貌似字符串不需要加引号,加引号反而出错了。。。

python2与python3的print及字符串格式化小结

python2与python3的print及字符串格式化小结

各位可以自己试一下。当键值为整数的时候可以顺利输出,键值为字符串时不需要加‘'。

4.格式化限定符

{0:0.2f} {1:3d},在序号后面加上格式符就可以了,不用加%哦。

5.填充与对齐(更加方便的语法,虽然用到的比较少)

填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

python2与python3的print及字符串格式化小结

是不是很方便,注意<>^号后面加宽度哦。

好啦,print和格式化的用法基本讲完了。大家掌握的怎么样啦下面还没完,略微吐槽一下python中矩阵的输出。。。

在python2.7.6中矩阵输出:

python2与python3的print及字符串格式化小结

在python3.4中还是不能正常输出,总是错位。。。

python2与python3的print及字符串格式化小结

因为现在python主打大数据领域,所以特别希望python未来能特别为矩阵输出优化一下。

总结

以上所述是小编给大家介绍的python2与python3的print及字符串格式化小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
打印出python 当前全局变量和入口参数的所有属性
Jul 01 Python
python中的多线程实例教程
Aug 27 Python
python通过pil模块获得图片exif信息的方法
Mar 16 Python
Python正规则表达式学习指南
Aug 02 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
Apr 01 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
python 获取计算机的网卡信息
Feb 18 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 Python
Python 语言实现六大查找算法
Jun 30 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 #Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 #Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 #Python
python实现停车管理系统
Nov 30 #Python
pycharm运行和调试不显示结果的解决方法
Nov 30 #Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 #Python
python实现图片识别汽车功能
Nov 30 #Python
You might like
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
jquery 弹出层实现代码
2009/10/30 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
Python实现CET查分的方法
2015/03/10 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
python中利用await关键字如何等待Future对象完成详解
2017/09/07 Python
深入理解Django中内置的用户认证
2017/10/06 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
市场营销专业个人自荐信格式
2013/09/21 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
党员一帮一活动总结
2014/07/08 职场文书
《检阅》教学反思
2016/02/22 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python
nginx七层负载均衡配置详解
2022/07/15 Servers
HttpClient实现表单提交上传文件
2022/08/14 Java/Android