换行后有三个点的python字符串......这是什么东西?

时间:2015-10-11 19:59:51

标签: python string syntax ipython

我今天第一次看到这个。什么是这三个点叫做什么,它是什么?我的猜测是帮助提高可读性。这是我看到的例子:

g = """
... S -> NP VP
... PP -> P NP
... NP -> Det N | Det N PP | 'I'
... VP -> V NP | VP PP
... Det -> 'an' | 'my'
... N -> 'elephant' | 'pajamas'
... V -> 'shot'
... P -> 'in'
... """

这是它输出的内容:

"\nS -> NP VP\nPP -> P NP\nNP -> Det N | Det N PP | 'I'\nVP -> V NP | VP PP\nDet -> 'an' | 'my'\nN -> 'elephant' | 'pajamas'\nV -> 'shot'\nP -> 'in'\n"

修改 IPython解释器似乎删除了" ..."在换行后,常规python解释器没有。这必须是IPython特有的东西,毕竟不是语言功能(可能是为了简化翻译的复制粘贴?)

替代品' ...'用于python。 我刚刚在不同的上下文中看到了...这样的多索引numpy数组:ar[0,...,1]。它不会影响中间的索引。

以下是一个示例用法:

ar = np.zeros((10,20,30,40,50,60,70,80)) # 8-dimensional array
ar2 = ar[:1,2:6,...,72:]
ar2.shape() # prints (1, 4, 30, 40, 50, 60, 70, 8)

2 个答案:

答案 0 :(得分:4)

...是解释器在需要您继续某种多行命令时打印的内容,如for循环或多行字符串文字。它与>>>类似,而不是您应该实际输入的内容。

答案 1 :(得分:1)

这是python交互模式的the reference tutorial

  

<强> 2.1.2。互动模式

     

当从tty读取命令时,解释器被称为   互动模式。在此模式下,它会提示输入下一个命令   主要提示,通常是三个大于号(>>>);对于   默认情况下,它会以辅助提示符提示连续行   三个点(...)。