python字符串格式化输出
在python2中一直使用形如: “%s .... %d” % (str, ... , intNum)格式化字符串的。这是python从C系列借鉴过来的语法,但是这种语法对于C这种静态语言足够快足够好,但是对于拥有很多先进数据结构的python来说就有点心有余来力不足了。为什么这么说呢?python的几把利刃:元组,列表,字典,集合等不适合用这种结构表示,这些利刃大多元素用下标表示,在这种结构中写出来很丑陋,不信你试试。
不管怎么样,这种表示方法还是必须掌握的,大多数情况下表示起来还是特别快速的。
字符串格式化代码:
格式描述
%% 百分号标记
%c 字符及其ASCII码
%s 字符串
%d 有符号整数(十进制)
%u 无符号整数(十进制)
%o 无符号整数(八进制)
%x 无符号整数(十六进制)
%X 无符号整数(十六进制大写字符)
%e 浮点数字(科学计数法)
%E 浮点数字(科学计数法,用E代替e)
%f 浮点数字(用小数点符号)
%g 浮点数字(根据值的大小采用%e或%f)
%G 浮点数字(类似于%g)
%p 指针(用十六进制打印值的内存地址)
%n 存储输出字符的数量放进参数列表的下一个变量中
看着这么的多格式,其实常用的也就那么几个,总结一些只需要记住: %d, %s, %f就OK了,其实等需要用的时候查找就可以了,毕竟我们大脑的资源是很宝贵的,可不能全用来记这些死板的东西
再来看看《Python基础编程》中对格式化输出的总结:
(1) %字符:标记转换说明符的开始
(2) 转换标志:-表示左对齐;+表示在转换值之前要加上正负号;“”(空白字符)表示正数之前保留空格;0表示转换值若位数不够则用0填充
(3) 最小字段宽度:转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从值元组中读出。
(4) 点(.)后跟精度值:如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将从元组中读出。
下面来看看python3主打的格式化函数format().
字符串的format函数可以通过以下几个方式灵活的完成字符串格式化:
1. 通过位置标号
{0}表示第一个元素, {1}表示第二个元素, {2}表示第三个元素,以此类推。。。
注意在这里的顺序是按照format中的参数顺序而言的,在字符串中{0},{1}位置随便。
2.通过关键字参数
3.通过属性和下标
但是不知道字典怎么回事,和正常的键值索引不一样,貌似字符串不需要加引号,加引号反而出错了。。。
各位可以自己试一下。当键值为整数的时候可以顺利输出,键值为字符串时不需要加‘’。
4.格式化限定符
{0:0.2f} {1:3d},在序号后面加上格式符就可以了,不用加%哦。
5.填充与对齐(更加方便的语法,虽然用到的比较少)
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
是不是很方便,注意<>^号后面加宽度哦。
好啦,print和格式化的用法基本讲完了。大家掌握的怎么样啦