2015/04/24

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 '

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

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 にはパッと見では把握しきれないくらい豊富なオプションが用意されているので、詳しく知りたい方は公式ドキュメントの方にあたってみてください。


参考
- フォーマットのシンタックス - Python 公式ドキュメント
- フォーマットの例 - Python 公式ドキュメント
- Python format throws KeyError - Stack Overflow

0 件のコメント: