Python的内置函数format()

#format()的(槽){}是从0开始的
>>> '{0} love {1}'.format('I','you')
'I love you'
>>> '{1} love {0}'.format('I','you')
'you love I'
>>> '{-1} love {0}'.format('I','you')
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    '{-1} love {0}'.format('I','you')
KeyError: '-1'

#format()的{}(槽)出现次数和format()方法中出数量不一致,则必须在槽中用序号指定参数使用
>>> '{} love {}'.format('I')
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    '{} love {}'.format('I')
IndexError: tuple index out of range
>>> '{0} love {0}'.format('I')
'I love I'
#format()的(槽){(引导符):(填充)(对齐)(width)(,(千元分隔符))(.(精度))(类型)}格式控制
>>> a = '我正在学习Python!'
>>> '{:15}'.format(a)                #默认左对齐
'我正在学习Python!   '
>>> a
'我正在学习Python!'
>>> '{:1}'.format(a)                #指定宽读为1
'我正在学习Python!'

>>> '{:<30}'.format(a)                    #左对齐30宽度
'我正在学习Python!                  '
>>> '{:>30}'.format(a)                    #右对齐30宽度
'                  我正在学习Python!'
>>> '{:^30}'.format(a)                    #居中对齐30宽度
'         我正在学习Python!         '
>>> '{:=^30}'.format(a)                   #填充=并居中对齐30宽度
'=========我正在学习Python!========='

#format()的{}(槽)一定要按顺序是:(填充)(对齐)(宽度)(,(千元分隔符))(.(精度))(类型)
>>> '{:=30}'.format(a)
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    '{:=30}'.format(a)
ValueError: '=' alignment not allowed in string format specifier  #'='在字符串格式说明符中不允许对齐


#format()的格式控制标记可以用变量表示,则用槽{}来指定所对应的控制标记及数量
>>> a = '我正在学习Python!'
>>> x = '#'
>>> y = '>'
>>> w = 30
>>> '{0:{1}{2}{3}}'.format(a,x,y,w)
'##################我正在学习Python!'


>>> '{1:{0}{1}{2}}'.format(x,y,w,a)                  #指定显示填充和对齐
'#############################>'
>>> '{2:{0}{1}{2}}'.format(x,y,w,a)                  #指定显示填充和宽度
'############################30'
>>> '{3:{0}{1}{2}}'.format(x,y,w,a)                  #要看参数的顺序,才指定参数的序号
'##################我正在学习Python!'

>>> '{1:{1}{2}{3}}'.format(a,x,y,w)                  #指定显示填充
'##############################'
>>> '{2:{1}{2}{3}}'.format(a,x,y,w)                  #指定显示填充和对齐
'#############################>'
>>> '{3:{1}{2}{3}}'.format(a,x,y,w)                  #指定显示填充和宽度  
'############################30'
>>> '{0:{1}{2}{3}}'.format(a,x,y,w)                  #指定显示所有参数
'##################我正在学习Python!'

#不能从自动字段编号切换到手动字段规范
>>> '{:{1}{2}{3}}'.format(a,x,y,w)
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    '{:{1}{2}{3}}'.format(a,x,y,w)
ValueError: cannot switch from automatic field numbering to manual field specification
#format()的千位分隔符控制格式
>>> a = 12345678
>>> '{:~^20}'.format(a)
'~~~~~~12345678~~~~~~'
>>> '{:~^20,}'.format(a)
'~~~~~12,345,678~~~~~'


#format()的精度和类型控制格式
>>> '{:.2f}'.format(a)
'123.46'
>>> '{:.1f}'.format(a)
'123.5'

#格式说明符缺少精度
>>> '{:.f}'.format(a)
Traceback (most recent call last):
  File "<pyshell#39>", line 1, in <module>
    '{:.f}'.format(a)
ValueError: Format specifier missing precision


>>> '{:~^20.3f}'.format(a)
'~~~~~~123.457~~~~~~~'

#format()所有的控制格式
>>> '{:~^20,.2f}'.format(a)
'~~~~~~1,234.57~~~~~~'
>>> '{:~^20,.3f}'.format(a)
'~~~~~1,234.568~~~~~~'

#format()对str(字符串)的精度控制格式,即对字符串数量的控制
>>> a = '我在学习Python!'
>>> '{:.10}'.format(a)
'我在学习Python'
>>> '{:.5}'.format(a)
'我在学习P'
#整数类型格式化
>>> '二进制:{0:b},八进制:{0:o},十进制:{0:d},小写十六进制:{0:x},大写十六进制:{0:X},Unicode字符:{0:c}'.format(0x1c8)
	  
'二进制:111001000,八进制:710,十进制:456,小写十六进制:1c8,大写十六进制:1C8,Unicode字符:Lj'

#浮点数的格式化
>>> '小写字母e的指数{0:e},大写字母E的指数{0:E},标准浮点{0:f},百分比{0:%}'.format(1.25)
	  
'小写字母e的指数1.250000e+00,大写字母E的指数1.250000E+00,标准浮点1.250000,百分比125.000000%'

 

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路来了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值