您现在的位置是:首页 > 技术教程 正文

Python基础——format格式化

admin 阅读: 2024-03-21
后台-插件-广告管理-内容页头部广告(手机)

文章目录

  • 1.基本用法
  • 2.填充与对齐
  • 3.数字格式化


  在python中,我们在输出字符串常用format方法设置一些特定的格式,以美化结果,同时便于更改字符串中指定内容。本文总结了format的常用方法。


1.基本用法

  format通过字符串中的花括号{}来识别和替换字符串,由此达到格式化字符串的目的。填充内容位置的识别,有按顺序自动替换、通过数字指定顺序、通过关键字指定位置三种方式。各方式示例如下:

  • 按顺序替换:此时花括号内无需指定位置,format中的内容按照花括号出现的顺序一一对应填充。
print("我来自{},我今年{}岁了".format("东北",15)) ## 我来自东北,我今年15岁了
  • 1
  • 2
  • 通过数字指定:在花括号中标明数字n,则format中第n个元素填入对应花括号内(n从0开始)。
print("我叫{1},来自{2},今年{0}岁".format(15,"小王","天津")) ## 我叫小王,来自天津,今年15岁 print("我来自{0},我今年{1}岁了,我来自{0}".format("东北",'15')) ## 我来自东北,我今年15岁了,我来自东北
  • 1
  • 2
  • 3
  • 4

  从上述示例可看出,此时format中元素的个数不一定要与字符串中花括号个数相同,只要花括号中指定位置有元素对应即可。

  • 通过关键字指定:我们还可以在花括号中设置填入内容的关键字,在format中通过 关键字=填充内容 的格式进行替换。
print("我来自{place},我今年{age}岁了".format(place="东北",age=15)) ## 我来自东北,我今年15岁了
  • 1
  • 2

 

2.填充与对齐

  有时我们需要将字符串按照某些格式进行对齐,因此需要在花括号{}中添加更多的说明内容。为了与填充位置说明的内容区分,我们用:将位置说明与填充字符说明分隔开。
  在:后面指定用于填充的字符(只能是一个字符),若不指定则默认用空格填充。在填充字符后可以添加对齐方式,对齐方式如下表所示:

符号对齐方式
<左对齐
>右对齐
^居中

在对齐符号后,可以用数字说明该处的总字符长度。示例如下:

print("我是{0:>5},来自{1:*^6}".format("小王","天津")) ## 我是 小王,来自**天津**
  • 1
  • 2

第一处需要五个字符,右对齐,但format中只有两个,由于未指定填充内容,因此用空格填充,小王右对齐;第二处需要六个字符,居中对齐,填充字符为*,因此天津居中。
 

3.数字格式化

  对于字符串中出现的数字内容,有时我们也需要将其保留指定位数,便于他人阅读,format还提供了对数字格式的指定。与对齐内容相同,有关数字格式的指定内容仍放在:后。
  对于数字类型,format中能够设置多种格式,具体表示方法如下表所示:

格式描述
{:b}将数字用二进制表示
{:c}将整数转换为对应的Unicode字符串
{:d}将数字用十进制整数表示(format中相应内容应是整数)
{: o}将数字用八进制表示
{:x}将数字用十六进制表示
{:f}将数字用浮点数表示
{:e}将数字用科学计数法表示
{:%}将数字用百分数表示
{:,}用逗号分隔数字

其中对于f,e和%格式,可在冒号后加一个小数点和数字,表示保留几位小数,说明如下:

格式描述
{:.3f}保留三位小数
{:.2%}将数字用百分数表示,且小数点后保留两位小数

示例如下:

print("我{:>5d}岁了".format(32)) # 5个数字,右对齐,缺失用空格填充 ## 我 32岁了 print("我{:0>5d}岁了".format(32)) # 5个数字,右对齐,缺失用0填充 ## 我00032岁了 print("我的存款为{:.2f}元".format(12345)) # 保留两位小数 ## 我的存款为12345.00元 print("本季度利润为{:.3f}元".format(1456.265897)) # 保留三位小数 ## 本季度利润为1456.266元 print("你排名前{:.2%}".format(0.354)) # 百分比形式,保留两位小数 ## 你排名前35.40% print("我的存款为{:.2e}元".format(12345)) # 科学计数法并保留两位小数 ## 我的存款为1.23e+04元 print("本季度利润为{:,}元".format(1456265.897)) # 用逗号分隔数字 ## 本季度利润为1,456,265.897元
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索