python字符串格式化输出的时候类似{0:.3f}是什么意思?
类似的几种:
print('test:{0:3}'.format(math.pi))
#test:3.141592653589793
print('test:{0:3f}'.format(math.pi))
#test:3.141593
print('test:{0:.3}'.format(math.pi))
#test:3.14
print('test:{0:.3f}'.format(math.pi))
#test:3.142
知道前面的0是对应后面format里的第0个变量,
文档里本来是.3f,自己写的时候没注意,然后就发现了这几种{0:3} {0:3f} {0:.3} {0:.3f},
好像记得还有类似{0:3d}这种的,请问下大神,冒号后面的数字、字母都是对应什么意思呢? 展开
%f 保留小数点后面六位有效数字,%.3f 保留三位小数。
%e 保留小数点后面六位有效数字,指数形式输出。
%3e 保留3位小数位,使用科学计数法。
%g 保留六位有效数字的前提下,使用小数方式,否则用科学计数法。
%3g保留3位有效数字,使用小数或科学计数法。
%s 标准输出。
%10s 右对齐,占位符10位。
%10s 左对齐,占位符10位。
%.2s 截取2位字符串。
%10.2s 10位占位符,截取两位字符串。
扩展资料
sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代itoa。
如:
//把整数123 打印成一个字符串保存在s 中。
sprintf(s, "%d", 123); //产生"123"可以指定宽度,不足的左边补空格:
sprintf(s, "%8d%8d", 123, 4567); //产生:" 123 4567"当然也可以左对齐:
sprintf(s, "%-8d%8d", 123, 4567); //产生:"123 4567"。
也可以按照16 进制打印:
sprintf(s, "%8x", 4567); //小写16 进制,宽度占8 个位置,右对齐。
sprintf(s, "%-8X", 4568); //大写16 进制,宽度占8 个位置,左对齐。
参考资料来源:
这跟C语言中的printf 函数语法是非常类似的,学过C语言的人就很容易理解这些。
print('test:{0:3}'.format(math.pi))
3用于控制输出宽度。
这里由于输出位数大于宽度,就按实际位数输出了。
print('test:{0:3f}'.format(math.pi))
同样,3表示输出宽度。
若输出位数小于此宽度,默认右对齐,左边补空格。如:
>>> print('test:{0:10f}'.format(math.pi))
test: 3.141593
若输出位数大于宽度,则按实际位数输出。这里之所以显示3.141593,是因为指定了f浮点数类型,默认显示6位小数。
print('test:{0:.3}'.format(math.pi))
.3 指定除小数点外的输出位数
print('test:{0:.3f}'.format(math.pi))
.3f 表示浮点数的精度为3(小数位保留3位)