格式化
网站里介绍了三种方法,
1.% 2.format() 3. f-string
1.%
常见的占位符
占位符 | 替换内容 |
---|---|
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
如果要进行前面补0,前面补空格,约束保留小数位数,则:
我的代码例子如下:
>>> '今天花了%f看%d部电影'%(19.9,2)
'今天花了19.900000看2部电影'
>>> '今天花了%.1f看%d部电影'%(19.9,2)
'今天花了19.9看2部电影'
>>> '今天花了%f看%03d部电影'%(19.9,2)
'今天花了19.900000看002部电影'
>>> '今天花了%f看%3d部电影'%(19.9,2)
'今天花了19.900000看 2部电影'
如果不确定用什么,%s可以把任何数据类型转换为字符串。另外一个需要注意的是,此语句中,%需要用%%来表示。
2.format()
用传入的参数依次替换字符串内的占位符{0}
、{1}
……
代码例子:
>>> '今天花了{0:.2f}看{1}部电影'.format(19.9,2)
'今天花了19.90看2部电影'
这里的%只需要直接写一个%即可。
3. f-string
f-string即以f开头的字符串。它和普通字符串不同之处在于,字符串如果包含
{xxx}
,就会以对应的变量替换:
代码例子:(这里为廖雪峰老师的课后练习)(三种方法都使用了)
小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%'
,只保留小数点后1位:
>>> s1=85
>>> s2=72
>>> r=(s1-s2)/s1
>>> print(f'小明的成绩从去年的72分提升到了今年的85分,小明成绩提升的百分点为{r:.1%}')
小明的成绩从去年的72分提升到了今年的85分,小明成绩提升的百分点为15.3%
#format方法 第一个.1f是转换数字为float,百分号在{}外面;第二个.1%是直接使用参数格式化,百分号在{}里面
>>> print('小明的成绩从去年的72分提升到了今年的85分,小明成绩提升的百分点为{0:.1f}%'.format(100*((85-72)/85)))
小明的成绩从去年的72分提升到了今年的85分,小明成绩提升的百分点为15.3%
>>> print('小明的成绩从去年的72分提升到了今年的85分,小明成绩提升的百分点为{0:.1%}'.format((85-72)/85))
小明的成绩从去年的72分提升到了今年的85分,小明成绩提升的百分点为15.3%
#%方法
>>> print('小明的成绩从去年的72分提升到了今年的85分,小明成绩提升的百分点为%.1f%%'%(r*100))
小明的成绩从去年的72分提升到了今年的85分,小明成绩提升的百分点为15.3%