Python:格式化输出

标准格式

字符串格式化话的标准形式为"Template String " % (Data)

模板字符串


%+8.6f

  1. 转换开始标志%
  2. 转换标志
  3. 最小宽度
  4. 精度,用小数点隔开
  5. 转换类型

示例1:

"%d" % 18
输出结果为“18”,按照上面的格式,这个是最简单的字符串模板,
占位符%d会被一个整数替换,而这个整数 就在%的后面Data所在的位置。

"%d %f" % (19,19.1)
当多于一个数的时候将其表示为元组的形式。

示例2:

"%10d" % 18

将会输出


最小宽度:
总共占据了10个字符的宽度,这里的10,就是最小宽度的标志。

转换标志:
而上面的转换标志则是"+""-"或者“0”之间的一个

  1. “+” 右对齐,默认形式


  2. “-” 左对齐


  3. “0” 用0填充空出的位置

示例3:

"%-10.5f" % 18.3
输出为:"18.30000 ",小数部分为5位,不足使用0填充,整个字符串为10位,不足用空格填充,左对齐。

这个格式 就组合了所有的模板类型,用-表示左对齐,空格填充,
10表示最小长度,
5表示小数部分长度.

注意:
这里注意了,如果整数 部分长度加上小数点后面要求的最小长度大于其前面要求的整体的最小长度,则整体的最小长度无效。

示例4:

"%-*.*f" % (10,5,18.3)
结果:

可以猜测出,这里的*起到了占位符的作用,使得最小长度在后面的Data区指定。

示例5:

针对字典操作

nameAge={'lijian':10,'liyue':9}
print("lijian's age: %(lijian)d" % nameAge)

结果:


用%(key)作为占位符,后面接转换类型d,后面的Data区用一个含有key的字典。可以直接得到相应的value。
这里的d还可以换成上面复杂的格式模板,如"-10.5f"

扩展形式


上面的示例都是使用的%表示Data区,并且格式相对稳定,只是比C中多了一个字典的方式,其他的区别不大。 而python的字符串提供了一种更高级的方法。

s.format(args,kwargs)
该形式可认为是一种函数调用。

示例6:

"{0},{2},{1}".format(one,2,3)
结果为"one,2,1",这个过程是使用{index}作为占位符,后面的args列表中相应下标的数据会替换之。

示例7:

"{0},{2},{1},{str}".format(one,2,3,str="string")
结果为"one,2,1,string",由上面可以前3个依次被列表的索引所替换,而最后一个则被*kwargs字典所替换,这样就 不止局限于index了。

示例8:

如果列表中的元素是字典,那么还可以用{0[key]}的形式直接替换字典里面的值。

nameAge={"zhang":10,"wang":11,"li":32} 
"wang's age is {0[wang]}d".format(nameAge) 

结果如上面的示例5结果一样。

示例9:

对数据的格式还可以进行进一步的控制

"{0:10},{1:>10.5f},{str:10}".format(one,2,3.2,str="string")
结果为"stirng , 1.30000,string "

在原有的基础上加上冒号和标准形式中定义的格式转换符即可,但是这里要注意了,其对齐不在用“+”和“-” 而是

  1. < 右对齐
  2. > 左对齐
  3. ^ 两边对齐
    在上面对齐格式前面加字符表示填充符。如“=^”则为中间对齐,空格用=填充。其格式转换符也有点区别。

转载

http://gotajuly.blog.51cto.com/2771348/925257

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用python处理数据时,不管是直接打印结果展示还是函数返回值,经常需要格式化输出,对于一些特殊的用法,偶尔会忘记...
    小蜗牛的成长阅读 1,370评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,908评论 18 139
  • 输出信息使我们获取程序调试信息的重要渠道; 恰到好处的输出格式能帮我们直观的查看调试信息。 常用格式化符种类及描述...
    老黄爱Python阅读 2,888评论 0 3
  • # 格式化输出字符串 print('%.3s'%'zhouzhou')#前3print('%.*s'% (6,'z...
    小螳螂阅读 837评论 0 0
  • 又是一个路口,再次选择一个方向,或许殊途同归,或许就此千差万别。 人生,难得糊涂。有资格说这句话的人,首先要先活的...
    剑阁小屋阅读 519评论 1 0