5

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

以下是 IDLE 中发生的比较:

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

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

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

1 回答 1

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 键,它会执行粘贴的块。与 PyCharm 相比,我更喜欢 IPython(在 Emacs 的缓冲区中运行),但也许您可以看看是否有类似的魔术函数,或者只是查找该魔术函数的源代码并自己编写一个?

于 2013-11-13T18:11:13.777 回答