24

我对使用 python 编程有点陌生,所以请放轻松。我正在尝试调用字符串属性 rjust 并指定浮点的精度。这是代码和示例输出(注意 0.00 不向右对齐):

print '%s: %s %s \tchange: %.2f' % (Instance1.symbol.ljust(5), 
    Instance1.name.ljust(50), Instance1.buyprices.rjust(10), Instance1.val)

输出:

AXP  : American Express Company                          55.38  change: -1.15  
AXR  : Amrep Corp.                                       6.540  change: 0.00
4

3 回答 3

30

%这显示了一个示例,说明如何使用旧的格式化方法使用两个小数点格式化您的输出:

v1 = 55.39
v2 = -1.15
v3 = 6.54
v4 = 0.00

print '%8.2f   %8.2f' % (v1, v2)
print '%8.2f   %8.2f' % (v3, v4)

相应的输出:

   55.39      -1.15
    6.54       0.00

或者,您可以使用“新的和改进的” .format()函数,该函数将存在一段时间,值得了解。以下将生成与上述相同的输出:

print '{:8.2f}  {:8.2f}'.format(v1, v2)
print '{:8.2f}  {:8.2f}'.format(v3, v4)

两组格式化指令都为您的数字分配 8 个空格,将其格式化为小数点后 2 位的浮点数。您必须调整这些值以满足您的需求。

我认为使用这种方法来格式化您的输出会更容易,因为它.format()可以让您对输出进行大量控制(包括对齐、填充、精度)。

于 2012-07-15T04:06:57.363 回答
1

没关系,我当然在发布我的问题后就想出了这个......

changed to this:
    def change_value(self, sym, buy, sell):
        self.sym = sym
        temp = float(buy) - float(sell)
        self.val = "%.2f" % temp




and then called str(Instance1.val).rjust(10)
于 2012-07-15T04:13:04.617 回答
0

Python格式规范迷你语言

print(f'{symbol:<5}: {name:<44} {buyprices:>10.2f}  change: {val:>5.2f}')

输出:

AXP  : American Express Company                          55.38  change: -1.15
AXR  : Amrep Corp.                                        6.54  change:  0.00

这个怎么运作:

<44 (left justified, 44 places)
>5.2f (right justified, 5 places, 2 decimal places) 
于 2022-02-03T12:24:31.843 回答