1. 程式人生 > >python中%r和%s的區別

python中%r和%s的區別

ould mat mark post inf info repr pan formatter

%r用rper()方法處理對象

%s用str()方法處理對象

有些情況下,兩者處理的結果是一樣的,比如說處理int型對象。
例一:
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.  

另外一些情況兩者就不同了
例二:
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 給字符串加了單引號 再看一種情況 例三: >> 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." ) 輸出結果: $ 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.‘ $

python中%r和%s的區別