天天看点

python 学习笔记(09)

字符串格式化

转换说明符:

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

        转换标志(可选):

            - (减号)――左对齐

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

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

                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      ’

本文转自 菜鸟的征程 51CTO博客,原文链接:http://blog.51cto.com/songqinglong/1712240