%r用rper()方法處理對象 %s用str()方法處理對象python
有些狀況下,二者處理的結果是同樣的,好比說處理int型對象。 例一:學習
''' 遇到問題沒人解答?小編建立了一個Python學習交流QQ羣:857662006 尋找有志同道合的小夥伴,互幫互助, 羣裏還有不錯的視頻學習教程和PDF電子書! '''
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.
複製代碼
另一些狀況二者就不一樣了 例二:this
text = "I am %d years old." % 22
print "I said: %s." % text
print "I said: %r." % text
複製代碼
返回結果:spa
I said: I am 22 years old..
I said: 'I am 22 years old.'. // %r 給字符串加了單引號
複製代碼
再看一種狀況 例三:code
''' 遇到問題沒人解答?小編建立了一個Python學習交流QQ羣:857662006 尋找有志同道合的小夥伴,互幫互助, 羣裏還有不錯的視頻學習教程和PDF電子書! '''
>> from datetime import datetime
>> timeinfo = datetime.today()
>> timeinfo
datetime.datetime(2016, 6, 7, 21, 17, 34, 925488)
>> type(timeinfo)
datetime.datetime
>> repr(timeinfo)
'datetime.datetime(2016, 6, 7, 21, 17, 34, 925488)'
>> str(timeinfo)
'2016-06-07 21:17:34.925488'
%r會將後面給的參數原樣打印出來,帶有類型信息。
formatter = "%r %r %r %r"
print formatter % (1, 2, 3, 4)
print formatter % ("one", "two", "three", "four")
print formatter % (True, False, False, True)
print formatter % (formatter, formatter, formatter, formatter)
print formatter % (
"I had this thing.",
"That you could type up right.",
"But it didn't sing.",
"So I said goodnight."
)
複製代碼
輸出結果:orm
$ python ex8.py
1 2 3 4
'one' 'two' 'three' 'four'
True False False True
'%r %r %r %r' '%r %r %r %r' '%r %r %r %r' '%r %r %r %r'
'I had this thing.' 'That you could type up right.' "But it didn't sing." 'So I said goodnight.'
$
複製代碼