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

>>>