如何使用python将数字放在字符串的中间?

时间:2017-08-29 17:19:45

标签: python

假设浮点数x = 3.1234。我想在x的左侧和右侧包含空格的字符串中间打印此数字。字符串长度是可变的。 x的精度是可变的。如果字符串长度= 10且精度= 2,则输出将为" 3.14 "在python中有任何可以返回此功能的函数吗?

1 个答案:

答案 0 :(得分:1)

https://docs.python.org/3.6/library/string.html#format-specification-mini-language

中记录得非常好

但是因为你显然没有时间去谷歌:

>>> x = 3.1234
>>> length=10
>>> precision=2
>>> f"{x:^{length}.{precision}}"
'   3.1    '

我担心 precision 的概念与默认情况下的Python不一致。您可以通过指定f ixed点格式而不是默认的g常规格式来修复它:

>>> f"{x:^{length}.{precision}f}"
'   3.12   '

这种表示法比调用方法str.format()更明显。但是在Python 3.5及更早版本中,您需要这样做:

>>> "{x:^{length}.{precision}f}".format(x=x, length=length, precision=precision)

但是没有任何摆弄这种格式的东西会让3.1234成为3.14。我怀疑这是一个错误的问题,但如果你真的是这个意思,那么在格式化它之前别无选择,只能调整x的值。这是一种方法:

>>> from decimal import *
>>> (Decimal(x) / Decimal ('0.02')).quantize(Decimal('1'), rounding=ROUND_UP) * Decimal('0.02')
Decimal('3.14')

这会将您的数字划分为大小为0.02的整数块,在必要时向上舍入,然后再次乘以0.02以获得所需的值。