Python3 输出格式化字符串
占位符
我们经常会输出类似‘你好,xxx!你的成绩是xxx,全班排名为xxx’
的字符串。
在Python中,采用了%
来实现,例子如下:
>>> '你好, %s, 你的成绩是:%d, 全班排名为:第%d名' % ('小明', 88, 22)
'你好, 小明, 你的成绩是:88, 全班排名为:第22名'
%
运算符就是用来格式化字符串的。%s
->字符串替换,%d
->整数替换。后面的变量或者值,要顺序对应好前面。
常见的占位符
占位符 | 替换内容 |
---|---|
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
占位符的使用
有时候会不知到该使用哪一个占位符,那么就用%s
,%s
永远会起作用。
>>> '%s是男生: %s' % ('小明', True)
'小明是男生: True'
有时候,%
只是一个普通的字符。那就要使用到转义,用%%
表示一个%
:
>>> '成绩提升了: %d %%' % 18
'成绩提升了: 18 %'
format( )
另一种格式化字符串的方法就是使用format( )
,它会用传入的参数依次替换字符串内的占位符{0}
、{1}
……
>>> '你好, {0}, 你的成绩为:{1}分, 全班排名为:第{2}名'.format('小明', 98, 10)
'你好, 小明, 你的成绩为:98分, 全班排名为:第10名'
PS:浮点数保留多位小数
下面用几个例子来说明怎么保留多位小数
(1)保留两位小数:
>>> '成绩提升了{0:.2f}%'.format(3.141592)
'成绩提升了3.14%'
(2)保留三位小数:
>>> '成绩提升了{0:.3f}%'.format(3.141592)
'成绩提升了3.142%'