1

出力のテキストを揃えようとしています。

purch_amt = float(input('Enter Amount of Purchase'))
state_stax = purch_amt * 0.04
county_stax = purch_amt * 0.02
tax = state_stax + county_stax
totalprice = purch_amt + tax

Print("Purchase Price", "= $", %.2f % purch_amt)
Print("State Sales tax", "= $", %.2f % state_stax)
Print("County Sales tax", "= $", %.2f % county_stax)
Print("Total Tax", "= $", %.2f % tax)
Print("Total Price", "= $", %.2f % totalprice)

...そして、実行するとこのように表示されます。

Purchase Price    = $   100.00
State Sales tax   = $     4.00
County Sales tax  = $     2.00
Total Tax         = $     6.00
Total Price       = $   106.00

これを行うために私が見つけた唯一の方法は、かなり簡単なはずの何かに対して非常に複雑です。

問題は解決しました、ありがとう!

purch_amt = float(input('Enter Amount of Purchase'))
state_stax = purch_amt * 0.04
county_stax = purch_amt * 0.02
tax = state_stax + county_stax
totalprice = purch_amt + tax

def justified(title, amount, titlewidth=20, amountwidth=10):
    return title.ljust(titlewidth) + " = $ " + ('%.2f' % amount).rjust(amountwidth)

print(justified('Purchase Price', purch_amt))
print(justified('State Sales Tax', state_stax))
print(justified('County Sales Tax', county_stax))
print(justified('Total Tax', tax))
print(justified('Total Price', totalprice))
4

2 に答える 2

3

String ljust、rjust、centerは、そのような文字列をパディングするために必要なものです。

def justified(title, amount, titlewidth=20, amountwidth=10):
    return title.ljust(titlewidth) + " = $ " + ('%.2f' % amount).rjust(amountwidth)

print(justified('Parts', 12.45))
print(justified('Labor', 100))
print(justified('Tax', 2.5))
print(justified('Total', 114.95))
于 2012-09-14T03:01:42.640 に答える
1

組み込みの文字列フォーマットを使用できます:

>>> column_format = "{item:20} = $ {price:>10.2f}"
>>> print(column_format.format(item="Total Tax", price=6))
Total Tax            = $       6.00

...等。

これを分解する:

  • {item}指定されたパラメータをフォーマットすることを意味しますitem
  • {item:20}フォーマットされた結果の幅が 20 文字であることを意味します
  • {price:>10.2f}右揃え ( >)、幅 10 ( 10)、小数点以下 2 桁の浮動小数点精度( .2f)を意味します。

Decimalついでに言うと、通貨関連のパッケージを見たいと思うかもしれません。

于 2012-09-14T03:24:55.037 に答える