我尝试以下代码:
print(repr("%0.2f" % cost).rjust(24), repr("%0.2f" % provision).rjust(17), end="\n")
但我得到的结果是(当成本= 100.00且规定= 4.00时)
'100.00' '4.00'
所以r.just
工作得很好(在这里查找)但是由于一些奇怪的原因,这些撇号出现在值的周围。
这不会发生在我的下一行代码中:
print("Provision summ %0.2f euros." % summ)
给了我
Provision summ 4 euros.
正如你所看到的,没有撇号,为什么会这样?你能告诉我如何删除它们吗?我尝试将.remove("'", "")
添加到我的字符串中,但它没有帮助。
答案 0 :(得分:3)
此处不要使用repr()
;它引入了引号,因为你要求字符串的Python文字形式。 end='\n'
完全是多余的,因为这是默认值。在括号中对格式字符串进行分组可以达到您想要的效果:
print(("%0.2f" % cost).rjust(24), ("%0.2f" % provision).rjust(17))
在插值之前或证明:
print("%0.2f".rjust(24) % cost, "%0.2f".rjust(17) % provision)
您可能会更好地学习str.format()
并使用它来格式化和证明您的文字:
print("{:>24.2f}{:>18.2f}".format(cost, provision))
这里>24
和>18
右对齐字段24和18个字符宽的值(后者是17 +打印多个参数时添加的额外空格print()
):
>>> cost, provision = 100.0, 4.0
>>> print("{:>24.2f}{:>18.2f}".format(cost, provision))
100.00 4.00
答案 1 :(得分:1)
这就是repr
的作用,但是:显示了实际对象的表示。在这种情况下,对象是由"%0.2f" % cost
等组成的字符串。
我根本不知道为什么你会在这里使用repr
,特别是当你在下一个正确的行中没有这样做时。它应该只是:
print(("%0.2f" % cost).rjust(24) ... )
答案 2 :(得分:1)
为什么要进行双重格式化(即先使用%0.2f
然后再使用rjust
)?你可以一步完成,这就是它的意思:
print('%24.2%17.2f' % (cost, provision))
这可能是你想要的。