Python中%r与%s的区别
%r是rper()方法处理的对象
%s是str()方法处理的对象
其实有些情况下,两者处理的结果是一样的,比如说处理数据类型为int型对象;
例如1:
print ('I am %d year old.' % 22)
print ('I am %s year old.' % 22)
print ('I am %r year old.' % 22)
返回的结果:
I am 22 year old.
I am 22 year old.
I am 22 year old.
另外的话有一些情况两者就不同了
例如2:
test = 'I am %d year old.' % 22 #test打印出来是一个字符串形式的;
print ('I said: %s' % test)
print ('I said: %r' % test)
返回的结果:
I said: I am 22 year old.
I said: 'I am 22 year old.'#%r 给字符串加了单引号;
再来看一种情况:
例如3:
import datetime
d = datetime.date.tody()
print ('%s' % d)
print('%r' % r)
返回的结果:
2017-03-16
datetime.date(2017, 3, 16)
可以看见,%r打印时能够重现它所代表的对象
ps:可能解析得不充分,博友们如有详细信息大家可以分享学习;