hob*_*es3 282 python string numbers number-formatting
如何使用以下要求将浮动数字格式化为固定宽度:
例如:
% formatter something like '{:06}'
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print formatter.format(number)
Run Code Online (Sandbox Code Playgroud)
输出就像
23.2300
0.1233
1.0000
4.2230
9887.2000
Run Code Online (Sandbox Code Playgroud)
Sve*_*ach 457
for x in numbers:
print "{:10.4f}".format(x)
Run Code Online (Sandbox Code Playgroud)
版画
23.2300
0.1233
1.0000
4.2230
9887.2000
Run Code Online (Sandbox Code Playgroud)
大括号内的格式说明符遵循Python格式字符串语法.具体来说,在这种情况下,它由以下部分组成:
format()" -在这种情况下,x作为唯一的参数.10.4f冒号之后的部分是格式规范.f表示定点表示法.10是被打印的领域的总宽度,由空间填充.4是数字的小数点后的位数.art*_*son 62
这已经过了几年,但是从Python 3.6(PEP498)开始,您可以使用新的f-strings:
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print(f'{number:9.4f}')
Run Code Online (Sandbox Code Playgroud)
打印:
23.2300
0.1233
1.0000
4.2230
9887.2000
Run Code Online (Sandbox Code Playgroud)
Sco*_*rts 34
在python3中,以下工作:
>>> v=10.4
>>> print('% 6.2f' % v)
10.40
>>> print('% 12.1f' % v)
10.4
>>> print('%012.1f' % v)
0000000010.4
Run Code Online (Sandbox Code Playgroud)
Fli*_*imm 13
使用f 字符串文字:
>>> number = 12.34
>>> print(f"{number}")
12.34
>>> print(f"{number:10f}")
12.340000
>>> print(f"{number:10.4f}")
12.3400
Run Code Online (Sandbox Code Playgroud)
冒号10.4f后面:是格式说明,其中10是整数的字符宽度(包括空格),第二个数字4是小数位数,f代表浮点数。
也可以使用变量而不是硬编码宽度和小数位数:
>>> number = 12.34
>>> width = 10
>>> decimals = 4
>>> print(f"{number:{width}.{decimals}f}")
12.3400
Run Code Online (Sandbox Code Playgroud)
elc*_*mon 10
您也可以用零左填充。例如,如果你想要number9 个字符的长度,用零填充左使用:
print('{:09.3f}'.format(number))
因此,如果number = 4.656,输出为:00004.656
对于您的示例,输出将如下所示:
numbers = [23.2300, 0.1233, 1.0000, 4.2230, 9887.2000]
for x in numbers:
print('{:010.4f}'.format(x))
Run Code Online (Sandbox Code Playgroud)
印刷:
00023.2300
00000.1233
00001.0000
00004.2230
09887.2000
Run Code Online (Sandbox Code Playgroud)
这可能有用的一个示例是当您想要按字母顺序正确列出文件名时。我注意到在一些 linux 系统中,数字是:1,10,11,..2,20,21,...
因此,如果您想在文件名中强制执行必要的数字顺序,您需要用适当数量的零填充左。
小智 8
请参阅Python 3.x 格式字符串语法:
IDLE 3.5.1
numbers = ['23.23', '.1233', '1', '4.223', '9887.2']
for x in numbers:
print('{0: >#016.4f}'. format(float(x)))
23.2300
0.1233
1.0000
4.2230
9887.2000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
458148 次 |
| 最近记录: |