Python Tips: string の format 内で {} を出力したい

Python の format(){} を出力する方法をご紹介します。

まず Python の format() とは何のことかなのですが、文字列型の format() メソッドのことを指しています。

print('hello, {}'.format('world'))  
# => hello world
print('hello, {}'.format('goodbye'))  
# => hello goodbye

フォーマットのテンプレートとなる文字列内では、変数のプレースホルダとして {} を使うことになっています。ですので、次のような形で {} を使おうと思ってもエラーが発生してしまいます。

print('I like ruby block syntax like: {:d}.times { |i| puts i }'.format(5))
# => KeyError Traceback (most recent call last)
# KeyError: ' |i| puts i '

プレースホルダではなく通常の文字として {} を使いたい場合には、記号をふたつ重ねて {{}} を使えば OK です。

print('I like ruby block syntax like: {:d}.times {{ |i| puts i }}'.format(5))
# => I like ruby block syntax like: 5.times { |i| puts i }

以上です。

その他 format() にはパッと見では把握しきれないくらい豊富なオプションが用意されているので、詳しく知りたい方は公式ドキュメントの方にあたってみてください。

参考