5

私はときどき Python 文字列フォーマットを使用します。これは次のように実行できます。

print('int: %i. Float: %f. String: %s' % (54, 34.434, 'some text'))

しかし、これは次のようにして行うこともできます。

print('int: %r. Float: %r. String: %r' % (54, 34.434, 'some text'))

%s を使用するだけでなく:

print('int: %s. Float: %s. String: %s' % (54, 34.434, 'some text'))

したがって、私の質問は次のとおりです。%r または %s 以外のものを使用する必要があるのはなぜですか? 他のオプション (%i、%f、および %s) は私には役に立たないように思えます。

[編集] %s の例を追加

4

4 に答える 4

9

float の場合、reprとの値は次のようにstr変化する可能性があります。

>>> num = .2 + .1
>>> 'Float: %f. Repr: %r Str: %s' % (num, num, num)
'Float: 0.300000. Repr: 0.30000000000000004 Str: 0.3'

文字列に使用%rすると、その周りに引用符が付きます。

>>> 'Repr:%r Str:%s' % ('foo','foo')
"Repr:'foo' Str:foo"

%f浮動小数点数と%d整数には常に使用する必要があります。

于 2013-06-13T07:49:29.443 に答える