格式化

    最后一个常见的问题是如何输出格式化的字符串。我们经常会输出类似 '亲爱的xxx你好!你xx月的话费是xx,余额是xx' 之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。

    格式化 - 图1

    在Python中,采用的格式化方式和C语言是一致的,用 % 实现,举例如下:

    >>> 'Hello, %s' % 'world'

    'Hello, world'

    >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)

    'Hi, Michael, you have $1000000.'

    你可能猜到了, % 运算符就是用来格式化字符串的。在字符串内部, %s 表示用字符串替换, %d 表示用整数替换,有几个 %? 占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个 %? ,括号可以省略。

    常见的占位符有:

    | %d | 整数 | | %f | 浮点数 | | %s | 字符串 | | %x | 十六进制整数 |

    其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

    >>> '%2d-%02d' % (3, 1)

    ' 3-01'

    >>> '%.2f' % 3.1415926

    '3.14'

    如果你不太确定应该用什么, %s 永远起作用,它会把任何数据类型转换为字符串:

    >>> 'Age: %s. Gender: %s' % (25, True)

    'Age: 25. Gender: True'

    有些时候,字符串里面的 % 是一个普通字符怎么办?这个时候就需要转义,用 %% 来表示一个 %

    >>> 'growth rate: %d %%' % 7

    'growth rate: 7 %'