Python:未解释转义字符

Python:未解释转义字符,python,windows,macos,escaping,character,Python,Windows,Macos,Escaping,Character,由于某种原因,当我在代码中编写转义字符时,转义字符永远不会被解释。我以前在Windows下工作,现在改成Mac,这与此有什么关系吗?以前,当我在windows中工作时,我从未遇到过这个问题。我试过搜索,但没有找到任何关于这个的东西。提前感谢您的帮助 以下是我的意思的一个例子: print 'Hello \nWorld' 从中,您将期望得到: >> Hello >> World 但IDLE打印出来的却是: >> 'Hello \nWorld' 您不是在打

由于某种原因,当我在代码中编写转义字符时,转义字符永远不会被解释。我以前在Windows下工作,现在改成Mac,这与此有什么关系吗?以前,当我在windows中工作时,我从未遇到过这个问题。我试过搜索,但没有找到任何关于这个的东西。提前感谢您的帮助

以下是我的意思的一个例子:

print 'Hello \nWorld'
从中,您将期望得到:

>> Hello 
>> World
但IDLE打印出来的却是:

>> 'Hello \nWorld'

您不是在打印字符串,而是在打印字符串文字;这是字符串表示法:

>>> 'Hello\nWorld'
'Hello\nWorld'
>>> print 'Hello\nWorld'
Hello
World
>>> print repr('Hello\nWorld')
'Hello\nWorld'
每当您在Python交互式解释器(或IDLE)中回显变量时,解释器都会将值回显给您:

>>> var = 'Hello\nWorld'
>>> var
'Hello\nWorld'
但是,打印值会输出到同一位置,但这是一个完全不同的操作:

>>> print var
Hello
World
例如,如果我调用一个打印的函数,并且该函数返回一个值,您会看到这两个函数都会在屏幕上出现:

>>> function foo():
...     print 'Hello\nWorld'
...     return 'Goodbye\nWorld'
...
>>> foo()
Hello
World
'Goodbye\nWorld'

在上面的示例中,
Hello
World
是由函数打印的,但是
“再见\nWorld”
是函数的返回值,解释器以函数的表示形式将其有效地回显给我。

您不是打印字符串,而是打印字符串文本;(…)因为两者之间没有区别(你自己的例子中清楚地显示了这一点),我不知道说明这一点的目的是什么。您似乎没有注意到问题在于OP在空闲状态下计算
print'Hello\nWorld'
后声称得到了
'Hello\nWorld'
作为输出,这不是真的。@PiotrDobrogost:
'Hello\nWorld'
是字符串文字。换行符被转义,它被引号包围。这与《你好》-newline-
World
有很大区别。我确实看到了OP在
print expression
expression
之间被混淆的地方,这就是为什么我要演示这种差异。