4

重複の可能性:
文字列の書式設定オプション: 長所と短所

違いは何ですか

"%.2f" % x

"{:.2f}".format(x)

どのメソッドをどのバージョンの Python に使用すればよいか、少し混乱しています。

4

2 に答える 2

7

一般に、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."

于 2012-06-19T11:15:05.233 に答える
3

% スタイルはより簡潔になる傾向がありますが、より限定的でもあります。.format() にはいくつかの利点があります。

  1. ユーザー定義のクラスが独自のフォーマット フラグを提供できるようにします。
  2. オブジェクトの属性にアクセスできます

フロートを使用した例では、どちらも利点ではありません。

これらの手法はどちらも引き続き機能するため、どちらを使用するかはあなた次第です。%-formatting は Python 3 から削除されるという考えがありましたが、それはもはや真実ではありません。3.2 ドキュメントを参照してください。

新しい String Formatting 構文はより柔軟で、タプルと辞書を自然に処理できるため、新しいコードに推奨されます。ただし、現在、printf スタイルの書式設定を廃止する予定はありません。

于 2012-06-19T11:33:28.830 に答える