13

重複の可能性:
Python 文字列にリテラルの「{}」文字を出力し、.format を使用するにはどうすればよいですか?

基本的に、次のように .format() を使用したい:

my_string = '{{0}:{1}}'.format('hello', 'bonjour')

そしてそれを一致させます:

my_string = '{hello:bonjour}' #this is a string with literal curly brackets

ただし、コードの最初の部分でエラーが発生します。

Python を使用してテキストベースのコマンドを介してソフトウェアと通信しているため、中括弧は重要です。fosoftware が期待するフォーマットの種類を制御することはできないため、すべてのフォーマットを自分で整理することが重要です。文字列を中括弧で囲んで、文字列内のスペースが複数の引数ではなく単一の文字列として解釈されるようにします。たとえば、ファイル パスの引用符で通常行うのと同じです。

私は現在、古い方法を使用しています:

my_string = '{%s:%s}' % ('hello', 'bonjour')

これは確かに機能しますが、.format() の方が読みやすいようです。また、5 つ以上の変数をすべて 1 つの文字列にまとめてコマンドを送信すると、読みやすさが大きな問題になります。

ありがとう!

4

1 に答える 1

28

新しいスタイルは次のとおりです。

>>> '{{{0}:{1}}}'.format('hello', 'bonjour')
'{hello:bonjour}'

しかし、エスケープはやや読みにくいと思うので、エスケープを避けるために古いスタイルに戻すことを好みます。

>>> '{%s:%s}' % ('hello', 'bonjour')
'{hello:bonjour}'
于 2011-12-01T00:08:31.730 に答える