python字符串格式化输出的时候类似{0:.3f}是什么意思?

版本是3.4
类似的几种:

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 个位置,左对齐。

参考资料来源:

百度百科——输出格式

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-30
d表示整型,f表示浮点型,就是指明数据类型用的。
这跟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位)本回答被提问者采纳