在進行格式化輸出時,%r 與 %s 的區別就好比 repr() 函數處理對象與 str() 函數處理對象的差別。
%s str(),比較智能;
%r repr(),處理較爲簡單和直接;
處理一些簡單對象時,二者幾乎沒有差別,本文重點列舉一些二者的差異化用法:
1. 處理字符串時
>>> t="handsome"
>>> print " I'm %s" %t
I'm handsome
>>> print " I'm %r" %t
I'm 'handsome'
>>>
>>> str(t)
'handsome'
>>> repr(t)
"'handsome'"
>>>
2. datetime 庫中的 datetime 對象
>>> from datetime import datetime
>>> timeinfo = datetime.today()
>>> timeinfo
datetime.datetime(2017, 6, 19, 16, 29, 22, 396000)
>>> type(timeinfo)
<type 'datetime.datetime'>
>>>
>>> repr(timeinfo)
'datetime.datetime(2017, 6, 19, 16, 29, 22, 396000)'
>>> str(timeinfo)
'2017-06-19 16:29:22.396000'
>>>