重複の可能性:
文字列の書式設定オプション: 長所と短所
違いは何ですか
"%.2f" % x
と
"{:.2f}".format(x)
どのメソッドをどのバージョンの Python に使用すればよいか、少し混乱しています。
重複の可能性:
文字列の書式設定オプション: 長所と短所
違いは何ですか
"%.2f" % x
と
"{:.2f}".format(x)
どのメソッドをどのバージョンの Python に使用すればよいか、少し混乱しています。
一般に、2番目の形式(.format()
)を使用する場合は、それが新しく、もう1つの形式は最終的にはなくなります(少なくとも、ある時点での意図でした。以下の注を参照してください)。
Pythonを引用するにはPython3.0ドキュメントの新機能:
組み込みの文字列フォーマット操作用の新しいシステムは、%文字列フォーマット演算子に置き換わるものです。(ただし、%演算子は引き続きサポートされています。Python3.1では非推奨になり、後で言語から削除されます。)完全なスクープについてはPEP3101をお読みください。
.format()
少なくともPython2.6以降で利用可能になっています
Advanced String Formatting(PEP 3101)に関する詳細情報
注:
@Duncanは、ベースのフォーマットがなくなるかどうか/いつなくなるかを説明するスレッドへの参照についても、以下のコメントで言及しています。%
そして、@ NedBatchelderには、Python 3.2ドキュメントからのこの明確な引用があります: " ... there are no current plans to deprecate printf-style formatting.
"
% スタイルはより簡潔になる傾向がありますが、より限定的でもあります。.format() にはいくつかの利点があります。
フロートを使用した例では、どちらも利点ではありません。
これらの手法はどちらも引き続き機能するため、どちらを使用するかはあなた次第です。%-formatting は Python 3 から削除されるという考えがありましたが、それはもはや真実ではありません。3.2 ドキュメントを参照してください。
新しい String Formatting 構文はより柔軟で、タプルと辞書を自然に処理できるため、新しいコードに推奨されます。ただし、現在、printf スタイルの書式設定を廃止する予定はありません。