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:可能解析得不充分,博友们如有详细信息大家可以分享学习;

 

posted on 2017-03-16 09:55  梦魇一生  阅读(569)  评论(0编辑  收藏  举报