在Python中使用.format()方法时,如何在{}中使用多个参数

时间:2016-10-10 20:28:24

标签: python python-3.x rounding string-formatting string.format

我希望python中的表格能够像这样打印:

显然,我想使用.format()方法,但我有很长的浮点数,如下所示:@import "bourbon" %tile @include flex(0) @include flex-basis(auto) // display: inline-block // float: left box-sizing: border-box .xbox-tiles @include display(flex) @include flex-direction(column) @include flex-flow(wrap) height: 90vh width: 90vw .tile height: 33.33% width: 25% @extend %tile .big-tile height: 66.66% width: 50% @extend %tile 我需要对浮点数进行舍入,使它们看起来像这样:{{1} (总是两位小数,即使两者都是零,所以我不能使用round()函数)。

我可以使用1464.1000000000001对浮点数进行舍入,但是它们不会打印到漂亮的表格中。

我可以通过1464.10将它们放入好的表中,但它们不会被舍入。

有两种方法可以做到吗?像"{0:.2f}".format("1464.1000000000001")

这样的东西

2 个答案:

答案 0 :(得分:5)

你几乎就在那里,只需删除逗号(并传入一个浮点数,而不是一个字符串):

"{0:>15.2f}".format(1464.1000000000001)

请参阅Format Specification Mini-Language section

format_spec ::=  [[fill]align][sign][#][0][width][,][.precision][type]
fill        ::=  <any character>
align       ::=  "<" | ">" | "=" | "^"
sign        ::=  "+" | "-" | " "
width       ::=  integer
precision   ::=  integer
type        ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

打破以上格式:

fill: <empty>
align: <  # left
sign: <not specified>
width: 15
precision: 2
type: `f`

演示:

>>> "{0:>15.2f}".format(1464.1000000000001)
'        1464.10'

请注意,对于数字,默认对齐方式位于右侧,因此可以省略>

答案 1 :(得分:3)

"{0:15.2f}".format(1464.1000000000001)

我总觉得这个网站对这个东西很有用:

https://pyformat.info/