次の要件を満たして、浮動小数点数を固定幅にフォーマットするにはどうすればよいですか。
例えば:
% formatter something like '{:06}'
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print formatter.format(number)
出力は以下のようになります
23.2300
0.1233
1.0000
4.2230
9887.2000
for x in numbers:
print "{:10.4f}".format(x)
版画
23.2300
0.1233
1.0000
4.2230
9887.2000
中括弧内のフォーマット指定子は Pythonフォーマット文字列構文 に従います。具体的には、この場合、次の部分から構成されています。
format()
に渡す」という意味です。この場合、x
が唯一の引数として扱われます。10.4f
部分は フォーマット指定 です。f
は固定小数点表記を表します。10
は、スペースで左にパディングされた、印刷されるフィールドの合計幅です。4
は、小数点以下の桁数です。これが回答されてから数年が経ちましたが、Python 3.6( PEP498 )からは新しいf-strings
を使うことができます。
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print(f'{number:9.4f}')
印刷:
23.2300
0.1233
1.0000
4.2230
9887.2000
Python3では、次のように動作します。
>>> v=10.4
>>> print('% 6.2f' % v)
10.40
>>> print('% 12.1f' % v)
10.4
>>> print('%012.1f' % v)
0000000010.4
Python 3.x フォーマット文字列構文を参照してください :
IDLE 3.5.1
numbers = ['23.23', '.1233', '1', '4.223', '9887.2']
for x in numbers:
print('{0: >#016.4f}'. format(float(x)))
23.2300
0.1233
1.0000
4.2230
9887.2000
ゼロでパッドを残すこともできます。たとえば、number
の長さを9文字にしたい場合は、左にゼロを埋めて以下を使用します。
print('{:09.3f}'.format(number))
したがって、number = 4.656
の場合、出力は00004.656
です。
例では、出力は次のようになります。
numbers = [23.2300, 0.1233, 1.0000, 4.2230, 9887.2000]
for x in numbers:
print('{:010.4f}'.format(x))
プリント:
00023.2300
00000.1233
00001.0000
00004.2230
09887.2000
これが役立つ場合の1つの例は、ファイル名をアルファベット順に適切にリストする場合です。一部のLinuxシステムでは、番号が1,10,11、... 2,20,21、...であることに気付きました。
したがって、ファイル名に必要な数字の順序を適用する場合は、適切な数のゼロを左詰めする必要があります。
Pythonで3。
GPA = 2.5
print(" %6.1f " % GPA)
6.1f
は、ドットの後に1桁が表示されることを意味します。ドットの後に2桁を印刷する場合は、%6.2f
が3桁になるように%6.3f
するだけです。