質問: 1234567.8 >>> locale.format("%d", x, grouping=True) '1,234,567' >>> locale.format_string("%s% *f", (conv['currency_symbol'], # この行の"%s% *f"がわからない ... conv['frac_digits'], x), grouping=True) '$1,234,567.800000' ``` ### 予想 %s:文字列として置換 f:フォーマット文字列として置換 この2つの組み合わせのような感じでしょうか? 間の"%" や "*"がよくわかりません。 ご教示よろしくお願い致します。
回答: まず、locale.format_stringのドキュメントを見ます。 > > ###### locale.format_string(format, val, grouping=False, monetary=False) > > > 数値 val を現在の LC_NUMERIC の設定に基づいて書式化します。**書式は % 演算子の慣行に従います**。 > > > 引用元: Python3.7ドキュメント » Python 標準ライブラリ » locale.format_string **太字**は引用者 %演算子の慣行に従うとのことですので、次の解説を読めば良いです。 Python3.7ドキュメント » Python 標準ライブラリ » printf 形式の文字列書式化 ドキュメントは網羅性が高すぎてちょっと読みづらいので、これも張っておきます。 Qiita - Pythonの%演算子による文字列フォーマット