python中%r和%s的区别

%r用rper()方法处理对象
%s用str()方法处理对象

相同结果
有些情况下,两者处理的结果是一样的,比如说处理int型对象。

例:

print('I am %s years old.' % 22)
print('I am %r years old.' % 22)

返回结果:
I am 22 years old.
I am 22 years old.

不同结果

例:

x = "There are %d types of people." % 10
print('I said: %r' %x)
print('I said: %s' %x)

返回结果

I said: 'There are 10 types of people.'           # 通过%r 保留了原有所有属性
I said: There are 10 types of people.

例:

import datetime
riqi = datetime.date.today()
print(riqi)
print("%s" %riqi)
print("%r" %riqi)
 
返回结果

2020-04-02
2020-04-02
datetime.date(2020, 4, 2)

原文地址:https://www.cnblogs.com/danniel-gong/p/12621035.html