400-650-7353

精品课程

您所在的位置:首页 > IT干货资料 > python > 【Python基础知识】使用format()方法格式化字符串

【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 1in <module> 
  6. ValueError: Unknown format code 'd' for object of type 'float' 

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

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

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

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

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

  1. >>> '{:+d}'.format(7
  2. '+7' 
  3. >>> '{:d}'.format(-7
  4. '-7' 

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

  1. >>> '{:,}'.format(123456789
  2. '123,456,789' 

2、格式化字符串

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

  1. >>> '{}  {}  {}'.format(7'Ming'3.14
  2. '7  Ming  3.14' 

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

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

3、使用字符串名称

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

  1. >>> '{name}的分数是{score}'.format(name='Ming', score=88
  2. 'Ming的分数是88' 

4、填充和对齐

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

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

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

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

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

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

5、截断长字符串

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

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

 

课程好礼申请领取
您的姓名
您的电话
意向课程
 

中公优就业

官方QQ

扫描上方二维码或点击一键加群,免费领取价值599元网课,加群暗号:599。 一键加群

>>本文地址:
注:本站稿件未经许可不得转载,转载请保留出处及源文件地址。

推荐阅读

优就业:ujiuye

关注中公优就业官方微信

  • 关注微信回复关键词“大礼包”,领80G学习资料
QQ交流群
领取免费网课
(加群备注“网站”)
IT培训交流群 加入群聊 +
软件测试 加入群聊 +
全链路UI/UE设计 加入群聊 +
Python+人工智能 加入群聊 +
互联网营销 加入群聊 +
Java开发 加入群聊 +
PHP开发 加入群聊 +
VR/AR游戏开发 加入群聊 +
大前端 加入群聊 +
大数据 加入群聊 +
Linux云计算 加入群聊 +
优就业官方微信
扫码回复关键词“大礼包”
领取80G学习资料

淘宝商家短视频
预约试听
2020OAO训练营
免费试听
课程资料、活动优惠 领取通道