【Python基础知识】使用format()方法格式化字符串

发布 : python培训      来源:python干货资料

2020-08-14 16:24:33

Python 3引入了一种新的方式来格式化字符串,这种方式也反向移植到了Python 2.7中。“新式”格式化字符串废除了%操作符这种特殊语法,使得格式化字符串更常规。通过在字符串对象上调用format()方法来格式化字符串。

format()方法要求字符串中待格式化的字符串用花括号“{}”占位:

  1. >>> score = 59
  2. >>> name = 'Ming'
  3. >>> # format()方法将score和name按顺序格式化,即score和name按顺序“填充”
  4. >>> '{} {}'.format(score, name)
  5. '59 Ming'

1、格式化数字

格式化数字时,如果不使用任何说明符,那么“{}”仅起到占位的作用,不会改变原本的数字:

  1. >>> '我的幸运数字是{}'.format(7)
  2. '我的幸运数字是7'
  3. >>> '圆周率约等于{}'.format(3.14)
  4. '圆周率约等于3.14'

“:d”说明符用于将数字转换成整数,如果提供的数字无法转换成整数(如浮点数),Python解释器将会报错:

  1. >>> '{:d}'.format(7)
  2. '7'
  3. >>> '{:d}'.format(3.14)
  4. Traceback (most recent call last):
  5. File "<stdin>", line 1, in <module>
  6. ValueError: Unknown format code &#39;d&#39; for object of type &#39;float&#39;

“:f”说明符用于将数字转换成浮点数,“新式”格式化字符串的方式也可以指定浮点数位数:

  1. >>> &#39;{:f}&#39;.format(3.14) # 默认位数为小数点后6位
  2. &#39;3.140000&#39;
  3. >>> &#39;{:.2f}&#39;.format(3) # 指定为小数点后2位
  4. &#39;3.00&#39;

当小数位数超出指定的位数时,会以四舍五入的形式舍弃后面的小数:

  1. >>> &#39;{:.5f}&#39;.format(3.1415926) # 保留小数点后5位
  2. &#39;3.14159&#39;
  3. >>> &#39;{:f}&#39;.format(3.1415926) # 默认保留小数点后6位
  4. &#39;3.141593&#39;

可以使用正号“+”来显式指出数字为正,当数字为负数时,不需要使用多余的符号:

  1. >>> &#39;{:+d}&#39;.format(7)
  2. &#39;+7&#39;
  3. >>> &#39;{:d}&#39;.format(-7)
  4. &#39;-7&#39;

使用“:,”进行格式化,会将数字的每三位加一个逗号:

  1. >>> &#39;{:,}&#39;.format(123456789)
  2. &#39;123,456,789&#39;

2、格式化字符串

当需要格式化多个字符串时,format()方法的参数需要用逗号隔开:

  1. >>> &#39;{} {} {}&#39;.format(7, &#39;Ming&#39;, 3.14)
  2. &#39;7 Ming 3.14&#39;

它们本质上是元组数据类型,并且元组中包含的每个项都可以通过其索引号(索引号从0开始)进行调用。可以将这些索引号传递到用作原始字符串中占位符的“{}”中:

  1. >>> &#39;{0} {1} {2}&#39;.format(7, &#39;Ming&#39;, 3.14) # 0 1 2 为默认顺序
  2. &#39;7 Ming 3.14&#39;
  3. >>> &#39;{2} {1} {0}&#39;.format(7, &#39;Ming&#39;, 3.14) # 将顺序调整为2 1 0
  4. &#39;3.14 Ming 7&#39;
  5. >>> &#39;{2} {0} {1}&#39;.format(7, &#39;Ming&#39;, 3.14) # 将顺序调整为2 0 1
  6. &#39;3.14 7 Ming&#39;

3、使用字符串名称

可以在占位符的“{}”中填入待格式化的字符串名称,这样可以使原始字符串看起来更加清晰:

  1. >>> &#39;{name}的分数是{score}&#39;.format(name=&#39;Ming&#39;, score=88)
  2. &#39;Ming的分数是88&#39;

4、填充和对齐

可以通过附加参数增加字符串长度来填充字符串,或者在字符串周围创造“空间”。当需要可视化地组织大量数据时,这会很有用,下面是一些例子:

  1. >>> &#39;{:10}&#39;.format(&#39;Ming&#39;) # 10代表字符串一共占用10个字符
  2. &#39;Ming &#39;
  3. >>> &#39;{:>10}&#39;.format(&#39;Ming&#39;) # >使字符串右对齐,一共占用10个字符
  4. &#39; Ming&#39;
  5. >>> &#39;{:^10}&#39;.format(&#39;Ming&#39;) # ^使字符串居中,一共占用10个字符
  6. &#39; Ming &#39;

除了用空格填充字符串外,还可以用其他字符来填充字符串:

  1. >>>
  2. >>> &#39;{:_<10}&#39;.format(&#39;Ming&#39;) # 使用_填充字符串,<使字符串左对齐
  3. &#39;Ming______&#39;
  4. >>> &#39;{:s<10}&#39;.format(&#39;Ming&#39;) # 使用s填充字符串,<使字符串左对齐
  5. &#39;Mingssssss&#39;
  6. >>> &#39;{:_>10}&#39;.format(&#39;Ming&#39;) # 使用_填充字符串,>使字符串右对齐
  7. &#39;______Ming&#39;
  8. >>> &#39;{:_^10}&#39;.format(&#39;Ming&#39;) # 使用_填充字符串,^使字符串居中
  9. &#39;___Ming___&#39;

在格式化数字时,也可以填充字符串:

  1. >>> &#39;{:10d}&#39;.format(59)
  2. &#39; 59&#39;
  3. >>> # 6代表一共占用6个字符,0代表使用0填充,2代表保留小数点后2位
  4. >>> &#39;{:06.2f}&#39;.format(3.14159265)
  5. &#39;003.14&#39;

5、截断长字符串

“.”用于将字符串截断成指定长度:

  1. >>> &#39;{:.4}&#39;.format(&#39;Xiao Ming&#39;) # 截断成4位字符串
  2. &#39;Xiao&#39;
  3. >>> &#39;{:8.4}&#39;.format(&#39;Xiao Ming&#39;) # 截断成4位字符串,一共占用8个字符
  4. &#39;Xiao &#39;

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

领取零基础自学IT资源

涉及方向有Java、Web前端、UI设计、软件测试、python等科目,内容包含学习路线、视频、源码等

点击申请领取资料

点击查看资料详情 

收起 


 相关推荐

问题解答专区
返回顶部