在进行格式化输出时,%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'
>>>