字符串格式化

格式化操作符右操作数可以是任意类型。
如果右操作数可以是元组的话,则其中每一个元素都会被单独的格式化,每一个值都需要一个对应的转化说明符。
当需要转换的元组作为表达式的一部分存在,那么必须将它用圆括号括起来,以避免出错。

>>> '%d plus %d equals %d'%(1,1,2)
'1 plus 1 equals 2'

基本说明转换符

包括以下部分:
1.%字符:标记转换说明符的开始。
2.转换标志:-表示左对齐,+表示在转换值之前要加上正负号;“”(空白字符)表示正数之前保留空格;0表示转换值若位数不够则用0填充
3.最小字段宽度:转换后字符至少应该具有该指定的宽度,如果是*,则宽度会从值元组中读出
4.点(.)后跟精度值:如果转换的实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度会从元组中读出。
5.字符串格式化转换类型

转换类型含义
d,i带符号的十进制整数
o不带符号的八进制
u不带符号的十进制
x不带符号的十六进制(小写)
X不带符号的十六进制 (大写)
e科学计数法表示的浮点数(小写)
E科学计数法表示的浮点数(大写)
f,F十进制浮点数
g如果指数大于-4或者小于精度值则和e相同,其他情况与f相同
G如果指数大于-4或者小于精度值则和E相同,其他情况则与F相同
C单字符(接受整数或单字符字符串)
r字符串(使用repr转化任意python对象)
s字符串(使用str转换任意python对象)

简单转换

>>> 'width: %x cm'%50
'width: 32 cm'
>>> from math import pi
>>> 'Pi:%f...'%pi
'Pi:3.141593...'

字段宽度和精度

两个参数都是整数,字段宽度和精度通过点号(.)隔开
可以使用*(星号)作为字段宽度或者精度(或者两者都是用*),此时数值会从元组参数中读出

>>> from math import pi
>>> '%10f'%pi     #字段宽为10
'  3.141593'
>>> '%10.3f'%pi   #字段宽为10,精度为3
'     3.142'
>>> '%.2f'%pi      #精度 2
'3.14'
>>> '%.2s'%'Python'
'Py'
>>> '%*.*s'%(10,2,'Python')  #数值会从元组参数中读出
'        Py'

符号、对齐和用0填充

在字符宽度和精度之前还可以放置一个‘标志’,该标志可以是0,+,-,或空格;
0表示数字将会用0进行填充。
减号(-)用来左对齐数值
空格表示正数前加上字符,在对齐正负数时很有用
加号(+)表示无论正数还是负数都需要标出符号,在对齐正负数时很有帮助

>>> from math import pi
>>> '%07.2f'%pi
'0003.14'
>>> '%-7.2f'%pi
'3.14    '
        -2
>>> print('% 10d'%2 +'\n'+'% 10d' %-2)
         2
        -2
>>> print('%+10d'%2 +'\n'+'%+10d' %-2)
        +2
        -2
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值