从Word复制文本到Python使转义字符变得不必要,为什么?

2024-06-25 23:12:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,最近在我上的一节课上,我们开始了dragon realm教程。http://inventwithpython.com/chapter6.html我决定自己动手做这个小项目,写一个半长的冒险故事。大约到一半的时候,我开始把我的文字粘贴到Word中。(我使用的是我之前在flash中制作的一个冒险故事,所以所有的测试都已经写好了)。我开始粘贴到word中,这样我就可以更快地替换“with”和“with\”,因为它们太多了,而且占用了很多时间。当我运行它时,我发现了一些奇怪的东西。我直接从Flash复制的文本需要反斜杠来显示'或“正确,但是我从Word复制的文本没有。当我运行它时,我从Word复制的文本将显示反斜杠。在

例如:

\”This the newbie?\” The blond asked.
\”Yep Lily,\” Rachel answered cheerfully.

这就是我运行它时显示的内容。如果我去掉反斜杠并运行它,它将打印:

^{pr2}$

但是我从Flash复制的文本和反斜杠一样工作,如果我把它们去掉,就会引起某种错误。在

有人能给我解释一下为什么我从Word复制文本就不需要反斜杠了?如果有人想知道我在用python3.2.2工作,我还没有在2.7中测试过。在


Tags: 文本http粘贴with教程wordflash冒险
2条回答

这是因为\ecaps了",而python在字符串中没有找到任何右引号,因此它引发了EOL错误:

In [19]: "This the newbie\ "  #add a space after `\` and it works
Out[19]: 'This the newbie\\ '

In [20]: "This the newbie\" 
                              
   File "<ipython console>", line 1
     "This the newbie\"
                       ^
SyntaxError: EOL while scanning string literal


In [22]: "\"This the newbie\"" 
Out[22]: '"This the newbie"'

Word是一个糟糕的代码编辑器。在

引号被一个“花哨的”引号取代,不是ASCII字母表中的普通双引号,而是Unicode标准中其他地方的双引号:

>>> u'”'
u'\u201d'

我的Unicode应用程序告诉我这是右双引号符号;Word通常也使用匹配的左双引号符号。在

如果要在python字符串中使用双qoutes,只需将整个字符串用引号括起来:

^{pr2}$

或者您可以使用三重引用:

"""I am a string with both singe (') *and* double (") quotes"""

这样你就不必再为那些逃跑而烦恼了。在

相关问题 更多 >