如何输出格式化的字符串(学习笔记四)
我们经常会输出类似 ‘亲爱的xxx你好!你xx月的话费是xx,余额是xx‘ 之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。
在Python中,采用的格式化方式和C语言是一致的,用 % 实现,举例如下:
>>> ‘Hello, %s‘ % (‘world‘)
‘Hello, world‘
截图如下:
注:
(1)红线上的百分号,两边可有空格也可无;
(2)对于只有一个变量的情况,我们可以将‘world‘外的括号省略,则上面代码可以如下写:
>>> ‘Hello, %s‘ % ‘world‘
‘Hello, world‘
那么当出现两个变量时,我们应该怎么表示呢?如下:
>>> ‘Hi, %s, you have $%d.‘ % (‘wtf‘, 100)
‘Hi, wtf, you have $100.‘
注:
常见的占位符有:
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
现在简单介绍下,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
(1)格式化整数,可以指定整数的位置,如下:
>>> ‘%d-%d‘%(3,1)
‘3-1‘
>>> ‘%1d-%d‘%(3,1)
‘3-1‘
>>> ‘%2d-%d‘%(3,1)
‘ 3-1‘
>>> ‘%3d-%d‘%(3,1)
‘ 3-1‘
截图如下:
(2)格式化整数,可以指定是否补零,如下:
>>> ‘%d-%d‘%(3,1)
‘3-1‘
>>> ‘%d-%01d‘%(3,1)
‘3-1‘
>>> ‘%d-%02d‘%(3,1)
‘3-01‘
>>> ‘%d-%03d‘%(3,1)
‘3-001‘
截图如下:
(3)格式化整数指定整数位置和补零,如下:
>>> ‘%2d-%02d‘ % (3, 1)
‘ 3-01‘
(4)格式化浮点数
>>> ‘%.2f‘ % 3.1415926
‘3.14‘
扩展
(1)如果你不太确定应该用什么, %s 永远起作用,它会把任何数据类型转换为字符串:
>>> ‘Age: %s. Gender: %s‘ % (25, True)
‘Age: 25. Gender: True‘
(2)对于Unicode字符串,用法完全一样,但最好确保替换的字符串也是Unicode字符串:
>>> u‘Hi, %s‘ % u‘Michael‘
u‘Hi, Michael‘
(3)有些时候,字符串里面的 % 是一个普通字符怎么办?这个时候就需要转义,用 %% 来表示一个 % :
>>> ‘growth rate: %d %%‘ % 7
‘growth rate: 7 %‘