在Python(Windows 10)解释器中,我得到plt.show()的“无效语法”错误。我如何纠正它?

在Python(Windows 10)解释器中,我得到plt.show()的“无效语法”错误。我如何纠正它?,python,Python,我正在尝试编写一个for循环: for i in xrange(6): plt.subplot(2,3,i+1),plt.imshow(images[i],'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([]) plt.show() 这里,plt.show给了我一个语法错误: 如何纠正此错误?当使用交互式解释器定义像for循环这样的作用域时,当完成循环的最后一行时,需要另一行按键盘上的enter键来完成循环的

我正在尝试编写一个for循环:

for i in xrange(6):
    plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
    plt.title(titles[i])
    plt.xticks([]),plt.yticks([])
plt.show()
这里,plt.show给了我一个语法错误:


如何纠正此错误?

当使用交互式解释器定义像for循环这样的作用域时,当完成循环的最后一行时,需要另一行按键盘上的enter键来完成循环的写入,这将导致循环运行,然后才能写入下一行。 当一行以。。。这意味着您仍在循环或任何其他缩进范围中。只有当它返回到>>时,您才返回到正常缩进

这里发生的事情是,您正在写plt.show行,它仍然在循环中,但是没有正确的缩进。这是一个语法错误


您可能会发现在文件中编写代码并使用python运行该文件或使用某些IDE更容易。但这是一个完全不同的主题

您还没有定义plt。您的代码不完整。当您将所有错误都作为控制台输出时,不要发布错误图片。@Seth该图像实际上显示了她在控制台中定义的错误。对于OP:请发布问题中的完整代码并避免发布图像,因为我们无法复制粘贴代码来测试它>>>将cv2作为cv导入>>>将numpy作为np导入>>将matplotlib.pyplot作为plt导入>>img=cv.imread'gradient.png',0>>ret thresh1=cv.thresholdimg,127255,cv.THRESH\u BINARY>>ret,thresh2=cv.thresholdimg,127255,cv.THRESH\u BINARY\u INV>>>>ret,thresh3=cv.thresholdimg,127255,cv.THRESH\u TRUNC>>>ret,thresh4=cv.thresholdimg,127255,cv.Threshold3=cv.thresholdimg,127255,cv.THRESH\u to Zero\u INV>>标题=[“原始图像”,“二进制”,“二进制”,“二进制”,“二进制”,“TRUNC”,“TOZERO”,“TOZERO”,“TOZERO\u INV”]>>图像=[img,Threshold3,Threshold5]>>>因为我在第6区:。。。plt.子图2,3,i+1,plt.imshowimages[i],“灰色”。。。小标题[我]。。。plt.xticks[],plt.yticks[]。。。plt.show文件,第5行plt.show^SyntaxError:invalid syntax>>>>@GPhilo,虽然一般来说,粘贴代码是我们希望从OP而不是屏幕截图中得到的,但在这种情况下,粘贴的代码可能会起作用,而屏幕截图显示的错误是由于错误使用交互式解释器造成的。有趣的是,这些东西是如何工作的:即使按enter键,它仍在继续使用相同的循环。如何退出循环?@ApoorvaPanwal你的意思是,按enter键后,循环开始运行,你想停止它,还是说按enter键后,你仍然在循环行中键入以…开头的内容。。。。对于第二件事,再次输入后,您应该退出循环键入并返回到以>>开头的行。如果您正在谈论停止循环的运行。然后这是一个不同的问题,你需要考虑你想如何编写代码,以及你想在什么时候发生。我的意思是,即使按enter键,该行仍然以…开头。我已经尝试再次按enter键,该行以>>>开头,但传递了一个错误,即键盘中断。我认为键盘中断将是另一个问题。如果在代码运行时按ctrl+c或类似的键来停止代码,通常会发生这种情况。但我不知道为什么在这种情况下会发生在你身上,它不应该发生在仅仅按下另一个回车键退出循环的情况下。