1

もしも

>>> (1,2)*2
>>> (1,2,1,2)

なぜこれが機能しないのですか?

'%d %d %d %d' % (1,2)*2

TypeError: not enough arguments for format string

タプルを明示的に構築せずにこれを行う別の方法はありますか?

4

2 に答える 2

3

かっこのペアを追加する必要があります。

'%d %d %d %d' % ((1,2)*2)

Python では、同じ優先順位を持つ%ため*、コードは次と同等です

('%d %d %d %d' % (1,2))*2

2 つの演算子の優先順位が同じである理由は、それ%が剰余演算子でもあり、乗算と除算と同じカテゴリにあると見なされるためです。

于 2013-08-22T19:57:34.783 に答える
0

追加の括弧のペアを追加するだけです:

>>> '%d %d %d %d' % ((1,2)*2)
'1 2 1 2'
>>>

現在のところ、コードは文字列を使用して作成し、(1,2)その文字列を 2 倍にしようとしています。

于 2013-08-22T19:57:37.390 に答える