%r は rper() メソッドを使用してオブジェクトを処理します
%s は str() メソッドを使用してオブジェクトを処理します
関数 str() は値を人間の読み取りに適した形式に変換するために使用され、repr( ) は、インタープリターが読み取る形式に値を変換するために使用されます (同等の構文がない場合、SyntaxError 例外が発生します。) オブジェクトに人間が判読できる解釈形式がない場合、str() はrepr() と同等の値。数値や連結リスト、辞書などの構造体など多くの種類は、関数ごとに統一された解釈方法を持っています。
int型オブジェクトの処理など、2つの処理の結果が同じになる場合があります。
例 1:
print "I am %d years old." % 22 print "I am %s years old." % 22 print "I am %r years old." % 22
戻り結果:
I am 22 years old. I am 22 years old. I am 22 years old.
他の場合、この 2 つは異なります
例 2:
text = "I am %d years old." % 22 print "I said: %s." % text print "I said: %r." % text
戻り結果:
I said: I am 22 years old.. I said: 'I am 22 years old.'. #%r 给字符串加了单引号
別の状況を見てください
例 3:
import datetime d = datetime.date.today() print "%s" % d print "%r" % d
戻り結果:
2017-08-16 datetime.date(2017, 8, 16)
%r は、印刷時にそれが表すオブジェクトを再現できることがわかります (rper() は、それが表すオブジェクトを明確に再作成します)
以上がPython での %r と %s の使用法の違いを比較するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。