もしも
>>> (1,2)*2
>>> (1,2,1,2)
なぜこれが機能しないのですか?
'%d %d %d %d' % (1,2)*2
TypeError: not enough arguments for format string
タプルを明示的に構築せずにこれを行う別の方法はありますか?
かっこのペアを追加する必要があります。
'%d %d %d %d' % ((1,2)*2)
Python では、同じ優先順位を持つ%
ため*
、コードは次と同等です
('%d %d %d %d' % (1,2))*2
2 つの演算子の優先順位が同じである理由は、それ%
が剰余演算子でもあり、乗算と除算と同じカテゴリにあると見なされるためです。
追加の括弧のペアを追加するだけです:
>>> '%d %d %d %d' % ((1,2)*2)
'1 2 1 2'
>>>
現在のところ、コードは文字列を使用して作成し、(1,2)
その文字列を 2 倍にしようとしています。