字符串的格式化
如何输出格式化的一串字符串。我们经常需要输出类似++尊敬的XXX您好!你的电费余额为XXX,请及时续交电费。++之类的一句话,而xxx的内容都是需要随时变化得,由此我们需要一种简便的格式化字符串的方式。
在Python中,采用的格式化方式和C语言是一致,用%
实现:
python
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d billion dollars.' % ('Michael', 99999)
'Hi, Michael, you have $99999 billion dollars.'
%
运算符用来格式化字符串。%s
表示用字符串替换,%d
表示用整数替换,有几个%
占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%,括号可以省略。
常见的占位符有:
占位符 | 替换内容 |
---|---|
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
python
print('%2d-%02d' % (3, 1))
print('%.2f' % 3.1415926)
如果不确定应该用什么,%s
会把任何数据类型转换为字符串:
python
>>> 'Name: %s. Age: %s' % (Ken, 15)
'Name: Ken. Age: 15'
format()格式化
另一种格式化字符串的方法是使用字符串的format()
方法,它会用传入的参数依次替换字符串内的占位符{0}
、{1}
......,这种方式写起来比%要复杂一些:
plain
>>> 'Hello, {0}, 你的身高是 {1:.1f}%'cm.format('李磊', 175)
'Hello, 李磊, 你的身高是175cm.%'
f-string格式化
还有一种格式化字符串的方法是使用以f-string
,它和普通字符串不同之处在于,字符串如果包含{xxx}
,就会以对应的变量替换:
plain
>>> r = 2.5
>>> s = 3.14 * r ** 2
>>> print(f'The area of a circle with radius {r} is {s:.2f}')
The area of a circle with radius 2.5 is 19.62
{r}
被变量r
的值替换,{s:.2f}
被变量s
的值替换,并且:
后面的.2f
指定了格式化参数(即保留两位小数),因此,{s:.2f}
的替换结果是19.62
。