Python艰难的方式 - 练习6 - %r与%s

som*_*me1 41 python

http://learnpythonthehardway.org/book/ex6.html

Zed似乎在这里使用%r%s互换,两者之间有什么区别吗?为什么不一直使用%s

此外,我不知道在文档中搜索什么以查找更多信息.什么是%r%s究竟叫什么名字?格式化字符串?

sha*_*ang 62

它们被称为字符串格式化操作.

%s和%r之间的区别在于%s使用该str函数,%r使用该repr函数.你可以阅读有关之间的差异str,并repr这个答案,但对于内置类型,在实践中,最大的区别在于repr对字符串包含引号和所有特殊字符转义.


Fre*_*Foo 21

%r电话repr,%s电话str.这些行为可能不同对于某些类型的,但不是为别人:repr返回"对象的可打印表示",而str返回"一个很好的对象的打印表示形式".例如,它们对于字符串是不同的:

>>> s = "spam"
>>> print(repr(s))
'spam'
>>> print(str(s))
spam
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它repr是字符串的文字表示(Python解释器可以解析为str对象),而str只是字符串的内容.