2017-02-07 18 views
0

以下のコードは完全ではありませんが、私が何をしているのかを理解する必要があります。私のテーブルが '100.001'の後ろに並んでいないことが気になるものです。私は同じ数字を保持したいので、私は '|'を止めるために何かできますか? 100.001の後に突き出ることから?浮動小数点数を使った書式設定

for j in numbers: 
     print('{} {} {} {}\n'.format(number, "|", num, "|", etc, etc))  



#output 

     1  | 0.617 | 98.333 | 98.332 | 0.108 | 0.101 | 91.678 | 

     2  | 0.617 | 98.332 | 98.332 | 0.101 | 0.101 | 100.001 | 

     3  | 0.617 | 0.180 | 98.335 | 0.106 | 98.335 | 93.330 | 

     4  | 0.617 | 0.107 | 98.336 | 0.105 | 0.101 | 95.004 | 
+0

を見てみましょうか?あなたはUNIX上で? –

+0

私はmacを使用しています。それは重要ですか? – Anonypy

+1

Unixでは、通常、出力を 'column -t 'にパイプするだけです。 –

答えて

1

出力番号の書式を設定します。これを行うには、書式指定子(printf | sprintf | fprintf関数の書式指定子と同様)を使用できます。

まず、数値の形式について具体的に説明し、すべての出力がその特定の形式で出力されるようにしてください。だから、もしあなたが '100.001'を整列させたいなら、DDD.dddという形式(3桁の3桁の数字)を使うことをお勧めします。次のように: "06.3":Pythonでは指定子を使用し

'{:06.3f}'.format(3.141592653589793) 

を印刷する必要があります:

003.142 

をどのようなOSの完全な参照here

+0

ありがとう!それはする必要があります。理想的には、3の前の2つのゼロは見えなくなりますが、それは重要ではないと思います。 – Anonypy

+1

@Anonypy:ゼロを省略するには、 '' {:6.3f} ''にしてください。書式文字列中の「0」は、ゼロを埋め込むように指示するものです。 – ShadowRanger

+0

パーフェクト。ありがとう! – Anonypy

0

あなたは.ljust(10)で表構造を得ることができますか?

value = 100.001 
number = 3.3457 
num = 10.2 
etc = 34.1234 
for i in range(10): 
    print('{} | {} | {} | {}\n'.format(str(value).ljust(10), i, etc, etc)) 
+0

良いです。 Python 2では、括弧の中の 'print'に引数を渡す必要はありません。 –

+0

Nope - エラーを返します:ValueError:自動フィールド番号から手動フィールド指定に切り替えることができません – Anonypy

+0

{:.3f} atm – Anonypy

関連する問題