python - Python 中格式化程序 %r 和\n 发生了什么?

标签 python string-formatting

我正在学习《艰苦学习Python》。这是exercise9的常见学生问题中的内容

为什么当我使用 %r 时\n 换行符不起作用?

这就是 %r 格式的工作原理,它按照您编写的方式(或接近的方式)打印它。这是用于调试的“原始”格式

然后我尝试了一下,但它对我有效!

我的代码:

# test %r with \n
print "test\n%r\n%r" % ("with", "works?")

# change a way to test it
print "%r\n%r" % ("with", "works?")

输出:

test
'with'
'works?'
'with'
'works?'

这让我很困惑,我的测试或书本有问题吗? 你能给我举一些例子吗?非常感谢。

最佳答案

这不是您看到 %r 效果的地方。将转义字符(例如换行符 ('\n'))放入将替换 %r 的字符串中:

>>> print "%r\n%r" % ("with\n", "works?")
'with\n'
'works?'

现在使用 %s(它替换为 str() 表示形式而不是 repr() 表示形式)来查看差异:

>>> print "%s\n%s" % ("with\n", "works?")
with

works?

关于python - Python 中格式化程序 %r 和\n 发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34634532/

相关文章:

java - UnknownFormatConversionException 是由 String.format() 中的符号 '%' 引起的

wpf - XAML 中带有撇号的 StringFormat 绑定(bind)不起作用

c# - 为什么 bigint 数字不与 c# CultureInfo 分割?

python - 为什么python将 '\12'解释为 '\n'

python - 如何从动态网站 python selenium 中检索表

python - sqlite3.connection.__init__ 方法记录在哪里?

python - 如何阅读python字符串格式化语法?

python - 用预定义值填充一维空间

python - 为什么python系统路径中一个目录是另一个目录的子目录?

python - 在 Python 3 中使用字符串格式而不是字符串连接是否更 Pythonic?