2011-01-30 12 views
1
xxxxxxxxxxxxx1.11xxxxxxxxxx1.11xxxxxxxxxxx1.11 
xxxxxxxxxxxxx1.11xxxxxxxxxx1.11xxxxxxxxxx11.11 
  1. 私は17サイン、14サイン、15サインのような簡単な準備ができていますか?
  2. あなたはどのように物事を得ることができますn.b. 1.11と11.11の小さな違いは?

N.b.数字は大きくても10符号以下である可能性があります。行番号46 (=17+14+15)は一定です。カラム化されたデータを列上で左揃えに整形しますか?

[更新]私はそう提案してエラーValueError: zero length field name in formatを得るのPython 2.6.5を使用してい注意してください。

+1

これは修正するのは簡単である: ' '{0、X> 17} {1:X> 14} {2:X> 15}。フォーマット(11.1、11.1、11.1)' –

答えて

2

string formattingを使用するには、モジュールまたはライブラリは不要です。 ValueErrorを避けるために、あなたのパラメータが与えられた値であるもののインデックスを指定:書式設定

"{0:>17}".format(11.1) 
+0

アイム文字でスペースを埋めていると仮定すると(この場合は 'x')十分です。私は問題が何であるか分かりません。 – kelloti

+0

ValueError:フォーマットの長さゼロのフィールド – hhh

+1

私の編集を参照してください(もしあなたがpython 2.xであれば、フォーマット文字列にインデックスオフセットを含める必要があります、約3.xについてはわからない) – kelloti

1

誰かがリグにコメントしました私はそれをここに投稿しますので、私はそれを答えたが、それを削除した。クレジットが適切な人に行くように、投稿したら削除します。

('%17.2f%14.2f%15.2f' % (1.11, 1.11, 11.11)) 
+3

この方法では、パッドに任意の文字( 'x'など)を入力します。 –

+1

@kellotiと@MYYNが正しいので、 '' {0:x> 17} {1:x> 14} {2:x> 15} 'を実行するときれいです。 、1.11,11.11)。 (私は本当に新しい文字列の書式を学ぶことに慣れていません...)唯一の違いは、 '%17.2f'などを使うと常に小数点の右側に2桁があることです。 (したがって、例えば、「11.1」は「11.10」となります)。 –

+0

Karl:通知ありがとうございました。 – hhh