Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python控制台中终止多行字符串_Python_Python 3.x_Pycharm - Fatal编程技术网

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

在Python控制台中终止多行字符串,python,python-3.x,pycharm,Python,Python 3.x,Pycharm,在PyCharm中,如果打开Python控制台,则无法终止多行字符串 以下是在IDLE中发生的情况,以供比较: >>> words = '''one two three''' >>> print(words) one two three >>> 但是,如果我在PyCharm中的交互式Python控制台中尝试相同的操作,那么在我键入最后3个撇号后,控制台将需要更多的输入。有人知道为什么吗 >>> words = '''one

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

以下是在IDLE中发生的情况,以供比较:

>>> words = '''one
two
three'''
>>> print(words)
one
two
three
>>>
但是,如果我在PyCharm中的交互式Python控制台中尝试相同的操作,那么在我键入最后3个撇号后,控制台将需要更多的输入。有人知道为什么吗

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

我不确定上下文是什么,但在许多情况下,从要打印在不同行上的内容创建一个元组/列表并用
“\n”
”将它们连接起来会更容易:

您也可以尝试使用三个双引号符号。也许PyCharm被分隔的东西弄糊涂了。在Python中,我一直想知道这一点,因为字符串可以通过纯并置连接起来。因此,有效地说,
''one\n\two\ntree'
应该采用三个不同的字符串,(1)
'
(2)
'one\n\two\ntree'
和(3)
'
,并将它们连接起来。因为它们之间的空格是不需要的(最小惊奇原则),所以对我来说更直观的是,三个单引号(或双引号)会被这样解释。但是,由于三重版本是它自己的特殊角色,它不这样工作


在IPython中,您给出的语法毫无问题。IPython还提供了一个漂亮的神奇命令
%cpaste
,在该命令中,您可以粘贴多行表达式或语句,然后用
--
分隔最后一行,点击enter键后,它将执行粘贴的块。我更喜欢IPython(在Emacs中的缓冲区中运行)而不是PyCharm,但也许你可以看看是否有类似的魔法函数,或者只是查找魔法函数的源代码,然后自己编写一个?

你有没有尝试过一个空行,里面什么都没有?(即按enter键两次)是的,我试过了,但仍然没有终止。每次我按Enter键,我只得到另外3个点。你是否定义了open parens/QUOTE如果你想输入多行,请使用Ctrl Enter键而不是在PyCharm Python控制台中输入信息。我是Python初学者,但我想我理解你所说的大部分内容。我知道还有其他方法可以做同样的事情(比如像你建议的那样加入iterable列表的元素)。不过,我很好奇,为什么从PyCharm内部启动的交互控制台与IDLE相比表现不同(我认为它们基本上启动了相同的底层交互解释器)。正如你所建议的,我再次使用双引号进行了测试,似乎效果不错。可能是PyCharm文本编辑器将引号与字符串关联的方式略有不同,导致多行字符串与单引号的解析错误。
>>> words = "\n".join(["one", "two", "three"])