1

私は本からPythonを学んでいて、この例に出くわしました。

>>> '%f, %.2f, %.*f % (1/3.0, 1/3.0, 4, 1/3.0)
# Result: '0.333333, 0.33, 0.3333'

ここで何が起こっているのか、特にその間の「4」がよくわからない。

4

2 に答える 2

3

私はあなたがこのような何かを意味したと思います:

>>> '%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)
于 2009-11-19T17:03:08.477 に答える
1

投稿した行に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'

これは可変長の精度を提供する方法のように思われるので、ユーザーが指定できるようにすることができます。

于 2009-11-19T17:01:39.743 に答える