字符串格式化

转换说明符:

        % 字符:标记转换说明符的开始

        转换标志(可选):

            (减号)――左对齐

            +  (加号) ――在转换值之前要加上正负号

            “”(空白字符)――正数之前保留空格

                0(零) ―― 转换值若位数不够用0填充


         最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度,如果是* 则宽度会从值元组中读出


         .(点)后跟精度值(可选):

                如果是实数精度值就会出现在小数点后的位数

                如果是字符串,那么该数字表示最大字段宽度

                如果是 * ,精度值将会从元组中读出

字符串格式化转换类型:

转换类型含义
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 对象)



简单的转换:

    >>> ‘Price of eggs: $%d% 30

    Price of eggs: $30

    >>>Price of eggs: %x% 31

Price of eggs: 1f

>>>from math import pi

>>>’Pi: %f% pi

‘Pi: 3.141593’

>>>’Pi: %i% pi

‘Pi: 3’

>>>’Using str: %s% 42L

’Using str: 42’

 

>>>’Using str: %r% 42L

>>>’Using str: 42L

 

宽度和精度

    >>>’%10f% pi    #字段宽10

    ‘  3.141593’

    >>>’%10.2f% pi  #字段宽10,精度2

    ‘     3.14’

    >>>’%.2f% pi

    ‘3.14’

   

>>>’%.5s% ‘Guido van Rossum’  #5个字符

    ‘Guido’

        可以使用 * 作为字段宽度或精度(或两者都使用 *),此时,数值会从元组参数中读出

        >>>’%.*s% (5, ‘Guido van rossum’)     #精度5

        ‘Guido’

 

符号,对齐,0填充

 

    >>>'%010.2f' % pi       #0填充,10位,2精度,10进制

    '0000003.14'

    >>>’%-10.2f’  % pi    #左对齐,10位,2精度,10进制

    ‘3.14      ’