嗨,我是python新手,我正在使用python开发NLP。我在用python编写if-else块时出错。当我只在block的时候写的时候它工作正常:
if xyzzy.endswith('l'):
print xyzzy
输入冒号后,我按回车键,它会自动将我带到正确的缩进位置。
但当我试图在打印语句后按“回车”键添加else块时, 它认为它是IF block的语句,所以它给了我不正确的缩进,就像我想在else block之后那样,而当我试图写else block时,它给了我这个错误。
else:
^
IndentationError: unexpected indent
那么,写完打印报表后我该怎么办呢?输入显然不起作用,因为它将光标向前移动,而当我使用空格来指向正确的指针时,它会给我一个错误。
从你的帖子中很难看出问题所在,但是
if-else
的格式是这样的也就是说,
else
需要与相应的if
处于相同的级别。在
if
上看到这个Python doc/tutorial,也看到这个other tutorial。有时,当你的编辑器为你自动缩进并且你手动编辑时,事情可能会变得一团糟,所以你必须弄清楚你的编辑器是如何处理缩进的(例如,它总是使用
tabs
还是空格?,如果你点击return等会发生什么)。另外,要小心标签和空格的混合,这也会导致问题(很难发现,因为两者都是“不可见的”)
更新后的帖子:
else
应与与其耦合的if
处于相同的缩进级别:对你来说
即使编辑器为您自动缩进,您仍应取消缩进以使代码语法正确。
正确的缩进并不是Python的问题,而是源代码编辑器的问题。
大多数理解Python的编辑器都会在冒号后正确地添加一级缩进(如您所见)。因为在该代码块中可以有任意多的语句,所以编辑器无法知道何时“取消”下一行的
else
。在开始键入之前,您必须告诉编辑器在该行上单击backspace或shift tab键以超出该行。
如果在编写完其余代码后插入
else
部分,请确保用于缩进的字符与if
语句的字符完全相同。如果if
语句缩进了空格,请为else
使用相同数量的空格。如果if
语句缩进了一个或多个制表符,请对else
语句使用相同数量的制表符。不要混合空格和制表符来缩进。不要仅仅因为行“看起来”像是缩进了一样,就认为它们的缩进是一样的。可以使用空格,也可以使用制表符(或某些组合)。
相关问题 更多 >
编程相关推荐