2024-04-25 08:42:52 发布
网友
Python使用行首的间距来确定代码块何时开始和结束。您可能会得到以下错误:
意外缩进。这行代码在开始处的空格比之前的多,但之前的空格不是子块的开始(例如if/while/for语句)。块中的所有代码行必须以完全相同的空白字符串开头。例如:
>>> def a(): ... print "foo" ... print "bar" IndentationError: unexpected indent
当以交互方式运行python时,这一点尤其常见:确保在命令之前没有放置任何额外的空格。(复制和粘贴示例代码时非常烦人!)
>>> print "hello" IndentationError: unexpected indent
unident与任何外部缩进级别都不匹配。这行代码在开始处的空格比之前的少,但与它可能属于的任何其他块都不匹配。Python无法决定它的去向。例如,在下面,是否应该将最终打印内容作为if子句的一部分?
>>> if user == "Joey": ... print "Super secret powers enabled!" ... print "Revealing super secrets" IndendationError: unindent does not match any outer indentation level
需要缩进的块。这一行代码在开头的空格数与前面的相同,但最后一行代码需要开始一个块(例如if/while/for语句、函数定义)。
>>> def foo(): ... print "Bar" IndentationError: expected an indented block
如果您想要一个不执行任何操作的函数,请使用“no op”命令pass:
>>> def foo(): ... pass
允许混合使用制表符和空格(至少在我的Python版本中是这样),但是Python假设制表符长度为8个字符,这可能与编辑器不匹配。只需对制表符说“不”。大多数编辑器允许用空格自动替换制表符。
避免这些问题的最佳方法是在缩进子块时始终使用一致数量的空格,并且理想情况下使用一个好的IDE为您解决问题。这也将使您的代码更具可读性。
在Python中,间隔非常重要,这给出了代码块的结构。 当您弄乱代码结构时会发生此错误,例如:
def test_function() : if 5 > 3 : print "hello"
您的文件中也可能混合了制表符和空格。
我建议您使用python语法感知编辑器,比如PyScripter,或者Netbeans
使用-tt选项运行代码,以确定是否不一致地使用了制表符和空格
Python使用行首的间距来确定代码块何时开始和结束。您可能会得到以下错误:
意外缩进。这行代码在开始处的空格比之前的多,但之前的空格不是子块的开始(例如if/while/for语句)。块中的所有代码行必须以完全相同的空白字符串开头。例如:
当以交互方式运行python时,这一点尤其常见:确保在命令之前没有放置任何额外的空格。(复制和粘贴示例代码时非常烦人!)
unident与任何外部缩进级别都不匹配。这行代码在开始处的空格比之前的少,但与它可能属于的任何其他块都不匹配。Python无法决定它的去向。例如,在下面,是否应该将最终打印内容作为if子句的一部分?
需要缩进的块。这一行代码在开头的空格数与前面的相同,但最后一行代码需要开始一个块(例如if/while/for语句、函数定义)。
如果您想要一个不执行任何操作的函数,请使用“no op”命令pass:
允许混合使用制表符和空格(至少在我的Python版本中是这样),但是Python假设制表符长度为8个字符,这可能与编辑器不匹配。只需对制表符说“不”。大多数编辑器允许用空格自动替换制表符。
避免这些问题的最佳方法是在缩进子块时始终使用一致数量的空格,并且理想情况下使用一个好的IDE为您解决问题。这也将使您的代码更具可读性。
在Python中,间隔非常重要,这给出了代码块的结构。 当您弄乱代码结构时会发生此错误,例如:
您的文件中也可能混合了制表符和空格。
我建议您使用python语法感知编辑器,比如PyScripter,或者Netbeans
使用-tt选项运行代码,以确定是否不一致地使用了制表符和空格
相关问题 更多 >
编程相关推荐