前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python字符串格式化

Python字符串格式化

作者头像
py3study
发布2020-01-10 11:42:26
9440
发布2020-01-10 11:42:26
举报
文章被收录于专栏:python3python3

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

标准形式

代码语言:javascript
复制
%+8.6f 
  • 转换开始标志%
  • 转换标志
  • 最小宽度
  • 精度,用小数点隔开
  • 转换类型

转换类型表见pythonEssentialReference-p-80。

示例1:

代码语言:javascript
复制
"%d" % 18 

输出结果为“18”,按照上面的格式,这个是最简单的字符串模板,由类型转换表只知道,占位符%d会被一个整数替换,而这个整数 就在%的后面Data所在的位置,同理,可以使用

代码语言:javascript
复制
"%d %f" % (19,19.1) 

当多于一个数的时候将其表示为元组的形式。

示例2:

代码语言:javascript
复制
"%10d" % 18 

将会输出" 18",总共占据了10个字符的宽度,这里的10,就是最小宽度的标志。而上面的转换标志则是"+""-"或者“0”之间的一个

  • “+” 右对齐,默认形式
  • “-” 左对齐,
  • “0” 用0填充空出的位置

比如

代码语言:javascript
复制
"%-10d" % 18 

输出结果就变成了“18 ”

示例3:

代码语言:javascript
复制
"%-10.5f" % 18.3 

输出为:"18.30000 ",小数部分为5位,不足使用0填充,整个字符串为10位,不足用空格填充,左对齐。这个格式 就组合了所有的模板类型,用-表示左对齐,空格填充,10表示最小长度,5表示小数部分长度,这里注意了,如果整数 部分长度加上小数点后面要求的最小长度大于其前面要求的整体的最小长度,则整体的最小长度无效。最后的f表示浮点数。

示例4:

代码语言:javascript
复制
"%-*.*f" % (10,5,18.3) 

将和上面的示例俄得到一样的结果,可以猜测出,这里的*起到了占位符的作用,使得最小长度在后面的Data区指定。

示例5:

代码语言:javascript
复制
nameAge={"zhang":10,"wang":11,"li":32} "wang's age is %(wang)d" % nameAge 

输出结果为"wang's age is 11",这个结构比上面的都要复杂,而且也和之前介绍的标准形式不相同。 这里用到了列表,并用%(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了。 如果列表中的元素是字典,那么还可以用{0[key]}的形式直接替换字典里面的值。如下例 示例8: 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 " 在原有的基础上加上冒号和标准形式中定义的格式转换符即可,但是这里要注意了,其对齐不在用“+”和“-” 而是

  • < 右对齐
  • > 左对齐
  • ^ 两边对齐

在上面对齐格式前面加字符表示填充符。如“=^”则为中间对齐,空格用=填充。其格式转换符也有点区别。其表见 pythonEssentialReference-p-73

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 标准形式
    • 示例1:
      • 示例2:
        • 示例3:
          • 示例4:
            • 示例5:
            • 扩展形式 上面的示例都是使用的%表示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了。 如果列表中的元素是字典,那么还可以用{0[key]}的形式直接替换字典里面的值。如下例 示例8: 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 " 在原有的基础上加上冒号和标准形式中定义的格式转换符即可,但是这里要注意了,其对齐不在用“+”和“-” 而是
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档