1. ホーム
  2. python

[解決済み] Pythonで%sの代わりに%rを使用するのはいつですか?[重複)。

2022-03-05 16:49:01

質問

について Pythonを苦労して学ぶ の21ページに、このようなコード例がありますね。

x = "There are %d types of people." % 10
...
print "I said: %r." % x

なぜ %r の代わりに、ここで使われている %s ? どのような場合に %r を使用し、どのような場合に %s ?

解決方法は?

その %s を使用してオブジェクトを変換します。 str() であり、かつ %r を使用して変換します。 repr() .

整数のような一部のオブジェクトでは、同じ結果が得られますが repr() は特殊で、(これが可能な型については)慣習的に有効なPythonの構文である結果を返すので、それが表すオブジェクトを明確に再作成するために使われる可能性があるのです。

ここでは、日付を使った例です。

>>> import datetime
>>> d = datetime.date.today()
>>> str(d)
'2011-05-14'
>>> repr(d)
'datetime.date(2011, 5, 14)'

の対象となる型 repr() のような外部リソースを指すものは、Pythonの構文が生成されません。 file これは、別のコンテキストで再作成できる保証はありません。