私は本からPythonを学んでいて、この例に出くわしました。
>>> '%f, %.2f, %.*f % (1/3.0, 1/3.0, 4, 1/3.0)
# Result: '0.333333, 0.33, 0.3333'
ここで何が起こっているのか、特にその間の「4」がよくわからない。
私は本からPythonを学んでいて、この例に出くわしました。
>>> '%f, %.2f, %.*f % (1/3.0, 1/3.0, 4, 1/3.0)
# Result: '0.333333, 0.33, 0.3333'
ここで何が起こっているのか、特にその間の「4」がよくわからない。
私はあなたがこのような何かを意味したと思います:
>>> '%f, %2.f, %.*f' % (1/3.0, 1.3, 4, 1/3.0)
'0.333333, 1, 0.3333'
4
アスタリスクの代わりに使用されるワイルドカード値です*
。展開すると、次のようになります。
>>> '%f, %2.f, %.4f' % (1/3.0, 1.3, 1/3.0)
投稿した行に2つの構文エラーがあります。1.3.0は有効な数値ではなく、文字列は閉じられていません。
これは、上記の文字列形式の有効なバージョンです。
'%f, %2.f, %.*f' % (1/3.0, 1/3.0, 4, 1/3.0)
および出力:
'0.333333, 0.33, 0.3333'
公式ドキュメントで%。*fのドキュメントが見つかりませんでした。ただし、4を解析して、次の引数を実行する小数点以下の桁数になっているようです。
例えば:
'%.*f' % (5, 1/3.0)
戻り値
'0.33333'
と
'%.*f' % (6, 1/3.0)
戻り値
'0.333333'
これは可変長の精度を提供する方法のように思われるので、ユーザーが指定できるようにすることができます。