Ali*_*ell 127
Python在行的开头使用间距来确定代码块何时开始和结束.你可以得到的错误是:
意外的缩进.这行代码在开始时比前一行有更多空格,但前一行不是子块的开头(例如if/while/for语句).块中的所有代码行必须以完全相同的空白字符串开头.例如:
>>> def a():
... print "foo"
... print "bar"
IndentationError: unexpected indent
Run Code Online (Sandbox Code Playgroud)
这个在交互式运行python时尤为常见:确保在命令之前不要添加任何额外的空格.(复制和粘贴示例代码时非常烦人!)
>>> print "hello"
IndentationError: unexpected indent
Run Code Online (Sandbox Code Playgroud)
Unindent与任何外部缩进级别都不匹配.这行代码在开始时的空间比之前的空间少,但同样地,它与它可能属于的任何其他块不匹配.Python无法决定它的去向.例如,在下面,最终的打印是否应该是if子句的一部分?
>>> if user == "Joey":
... print "Super secret powers enabled!"
... print "Revealing super secrets"
IndendationError: unindent does not match any outer indentation level
Run Code Online (Sandbox Code Playgroud)
期望一个缩进的块.这行代码在开始时具有与前一行相同的空格数,但最后一行预计会启动一个块(例如if/while/for语句,函数定义).
>>> def foo():
... print "Bar"
IndentationError: expected an indented block
Run Code Online (Sandbox Code Playgroud)
如果您想要一个不执行任何操作的函数,请使用"no-op"命令传递:
>>> def foo():
... pass
Run Code Online (Sandbox Code Playgroud)
允许混合制表符和空格(至少在我的Python版本中),但Python假定制表符长8个字符,可能与您的编辑器不匹配.只是对标签说"不".大多数编辑器允许它们被空格自动替换.
避免这些问题的最佳方法是在缩进子块时始终使用一致数量的空格,理想情况下使用可以解决问题的好IDE.这也将使您的代码更具可读性.
yan*_*ost 21
在Python中,间距非常重要,这给出了代码块的结构.当您搞乱代码结构时会发生此错误,例如:
def test_function() :
if 5 > 3 :
print "hello"
Run Code Online (Sandbox Code Playgroud)
您的文件中也可能混合使用制表符和空格.
我建议你使用python语法识别编辑器,如PyScripter或Netbeans
Man*_*j I 18
使用-tt选项运行代码,以确定是否使用制表符和空格不一致
Jam*_*hon 15
在您使用的任何编辑器中打开可见空白,并打开替换选项卡和空格.
虽然您可以使用带有Python混合选项卡和空格的选项卡,但通常会导致您遇到的错误.使用4个空格替换选项卡是编写Python代码的推荐方法.
如果您使用Sublime编写Python并获得缩进错误,
view - > indentation - >将缩进转换为空格
我所描述的问题是由Sublime文本编辑器引起的.同样的问题也可能由其他编辑引起.从本质上讲,问题与Python有关,希望根据空格处理缩进,而不是根据制表符编码缩进的各种编辑器.
小智 5
似乎没有提到的一个问题是,由于与缩进无关的代码问题,可能会出现此错误。
例如,采用以下脚本:
def add_one(x):
try:
return x + 1
add_one(5)
Run Code Online (Sandbox Code Playgroud)
IndentationError: unexpected unindent
当问题当然是缺少语句时,这会返回一个except:
。
我的观点:检查上面报告意外(未)缩进的代码!
小智 5
运行以下命令来解决它:
autopep8 -i <filename>.py
Run Code Online (Sandbox Code Playgroud)
这将更新您的代码并解决所有缩进错误:)
希望这会解决
归档时间: |
|
查看次数: |
660890 次 |
最近记录: |