否则就不能在IPython工作了

2024-05-20 01:32:37 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here我是Python新手。我试图在IPython中使用else语句,但收到一条错误消息: “识别错误:unident与任何外部标识级别都不匹配。”我用Python查找过类似的问题,但这些问题与混合使用制表键和空格来增加或与补充空格/字符有关。在这里,我在每个print语句前面使用4个空格,没有任何补充(隐藏)字符(当然除了一个回车行)。“if”部分单独起作用,但“else”部分不起作用。在

x = True
if x == True:
    print('ok')
else:
    print('nok')

更新:这是一个显示Ipython版本、代码和错误消息的屏幕截图。在


Tags: true消息if错误ipython语句级别字符
1条回答
网友
1楼 · 发布于 2024-05-20 01:32:37

IPython自动缩进复合语句的块,因此要进入else:行,您必须再次手动取消缩进。在

我只能复制你的错误,如果我没有正确地取消缩进;按退格1到3次,而不是4次。在

请注意在这个错误示例中else:前面的多余空格,其中我使用了三次退格:

In [2]: if x == True:
   ...:     print('ok')
   ...:  else:
  File "<ipython-input-2-915b4c0eb5ea>", line 3
    else:
         ^
IndentationError: unindent does not match any outer indentation level

IPython允许您编辑块;只需使用向上箭头键调用失败的文本片段,并删除else:行开头的多余空格。在

如果不是手工输入代码,不要直接复制和粘贴代码。使用%paste命令,IPython将为您粘贴代码,避免任何自动缩进问题:

^{pr2}$

有关详细信息,请参见%paste?。在

相关问题 更多 >