字符串扩展
- 字符串的三种定义方式
- 字符串拼接
- 字符串格式化
- 格式化的精度控制
- 字符串格式化方式2
- 对表达式进行格式化
学习目标
- 掌握格式化字符串的过程中做数字的精度控制
字符串格式化
name = "小明"
set_up_year = 2006
stock_price = 19.99
message = "我是:%s,我公司成立于:%d,我公司今天的股价是:%f" % (name, set_up_year, stock_price)
print(message)
输出结果:
我是:小明,我公司成立于:2006,我公司今天的股价是:19.990000
细心的同学可能会发现:
浮点数 19.99
,变成了 19.990000
输出
这里我们要讲解一下,字符串格式化 之 数字精度控制
字符串格式化 - 数字精度控制
我们可以使用辅助符号 “m.n” 来控制数据的宽度和精度
- m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
- n,控制小数点精度,要求是数字,会进行小数的四舍五入
示例:
- %5d:表示将整数的宽度控制在 5 位,如数字
11
,被设置为5d
,就会变成:[空格][空格][空格]11
,用三个空格补足宽度。 - %5.2f:表示将宽度控制为 5,将小数点精度设置为 2
小数点和小数部分也算入宽度计算。如:对11.345
设置了%7.2f
后,结果是:[空格][空格]11.35
。2 个空格补足宽度,小数部分限制 2 位精度后,四舍五入为.35
- %.2f:表示不限制宽度,只设置小数点精度为 2,如
11.345
设置%.2f
后,结果是11.35
字符串格式化 - 数字精度控制
num1 = 11
num2 = 11.345
print("数字 11 宽度限制 5,结果:%5d" % num1)
print("数字 11 宽度限制 1,结果:%1d" % num1)
print("数字 11.345 宽度限制 7,小数精度 2,结果:%7.2f" % num2)
print("数字 11.345 不限制宽度,小数精度 2,结果:%.2f" % num2)
输出结果:
数字 11 宽度限制 5,结果: 11
数字 11 宽度限制 1,结果:11
数字 11.345 宽度限制 7,小数精度 2,结果: 11.35
数字 11.345 不限制宽度,小数精度 2,结果:11.35
第一行:宽度 5,补了 3 个空格
第二行:宽度小于数字本身,无影响
第三行:宽度 7,补了 2 个空格,小数精度 2,四舍五入后为 .35
第四行:不限制宽度,小数点后四舍五入后为 .35
总结:
- 精度控制的语法:
m.n
的形式,如%5d
、%5.2f
、%.2f
m
和.n
均可省略
- 如果
m
比数字本身宽度小,会发生什么事?
m
不生效
.n
会对小数部分做精度限制,同时:?
会对小数部分做四舍五入