在Python控制台中终止多行字符串

时间:2013-11-13 18:01:45

标签: python python-3.x pycharm

在PyCharm中,如果我打开Python控制台,我就无法终止多行字符串。

以下是IDLE中用于比较的内容:

>>> words = '''one
two
three'''
>>> print(words)
one
two
three
>>>

但是如果我在PyCharm中的交互式Python控制台中尝试相同的事情,控制台在输入最后3个撇号后需要更多输入。谁知道为什么?

>>> words = '''one
... two
... three'''
...

1 个答案:

答案 0 :(得分:1)

我不确定上下文是什么,但在很多情况下,从您想要在不同行上打印的内容创建元组/列表并使用"\n"加入它们会更容易:

>>> words = "\n".join(["one", "two", "three"])

您也可以尝试使用三个双引号符号。也许PyCharm对被分隔的内容感到困惑。我总是在Python中想到这一点,因为字符串可以通过纯粹的并置来连接。如此有效,'' 'one\n\two\nthree' ''应该采用三个不同的字符串,(1)''(2)'one\n\two\nthree'和(3)'',并将它们连接起来。由于不应该需要它们之间的空间(最不惊讶的原则),因此对我来说更直观的是三重单(或双) - 引用将被解释。但由于三重版本是它自己的特殊角色,它不会那样工作。

在IPython中,您提供的语法没有问题。 IPython还提供了一个很好的魔术命令%cpaste,您可以在其中粘贴多行表达式或语句,然后用--分隔最后一行,并在按Enter键时执行粘贴的块。我更喜欢IPython(在Emacs中的缓冲区中运行)到PyCharm,但也许你可以看看是否有类似的魔术函数,或者只是查找该魔术函数的源代码并自己编写一个?