Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python-缩进错误,但不是来自混合制表符和空格_Python 3.x - Fatal编程技术网

Python 3.x Python-缩进错误,但不是来自混合制表符和空格

Python 3.x Python-缩进错误,但不是来自混合制表符和空格,python-3.x,Python 3.x,VSCode在一些python代码上给了我缩进错误。我已经彻底检查了我的代码,看看它是否是ol'混合制表符/空格的问题(在代码中打开渲染空白,并将代码粘贴到NPP中,打开查看制表符和空格和正则表达式搜索\t等),但事实并非如此。任何地方都没有制表符 所以我想知道是否所有函数都必须从它们的调用函数缩进 例如,这个语法有什么错误吗 from SGS_ExcelPrePythonPrep_funcs_ver0_01JD import * def main(): #some code m

VSCode在一些python代码上给了我缩进错误。我已经彻底检查了我的代码,看看它是否是ol'混合制表符/空格的问题(在代码中打开
渲染空白
,并将代码粘贴到NPP中,打开
查看制表符和空格
和正则表达式搜索
\t
等),但事实并非如此。任何地方都没有制表符

所以我想知道是否所有函数都必须从它们的调用函数缩进

例如,这个语法有什么错误吗

from SGS_ExcelPrePythonPrep_funcs_ver0_01JD import *
def main():
    #some code
    myVar = func1(data)
    #more code

if __name__ == '__main__':
    main()

#------ separate file: SGS_ExcelPrePythonPrep_funcs_ver0_01JD.py ------

def func1(data):
    #more code
    newVar = func2(moredata)
    nutherVar = func3(data3)
    #more code

    def func2(moredata):
        #WAS getting an indentation error here, until I intented
        #more code

def func3(data3):
    #now getting the indentation error here
    #more code
func2()是否需要缩进到func1()下面?一直在谷歌上搜索,但还没有找到这个具体问题的答案。很明显,我是一个糟糕的谷歌搜索者,因为这必须很容易找到。援助之手

更新: 以下是我收到的错误消息:

  File "w:\PyDev\SGS_ExcelPrePythonPrepAndFCode.py", line 13, in <module>
    from SGS_ExcelPrePythonPrep_funcs_ver0_01JD import *
  File "w:\PyDev\SGS_ExcelPrePythonPrep_funcs_ver0_01JD.py", line 198
    def AlphaToIndex(ltr):
      ^
IndentationError: expected an indented block

如果要创建空块,可以使用:


这将创建一个不执行任何操作的函数(并且返回
None
,与python中任何不返回
的函数一样)。

好的,尽管使用了错误的数据,但Reut实际上找到了解决方案

我有一个正在编写的函数列表,所有代码都整齐地折叠起来:

func1():...
func2():...
func3():
func4():...
func5():...
我没有注意到
func3()
是空的-我拖着兔子走到别的地方,打算马上回到它,并且在转移注意力之前没有添加
pass

事实证明,缩进
func4()
似乎并不能解决
func4()
的问题——在缩进它的同时,我还将它直接定位在调用函数的下方,而调用函数位于
func3()
上方。然后问题似乎转移到
func5()

带走:靠密码折叠生活的人,靠密码折叠死去。注意那些椭圆


非常感谢Joshua Avery和Reut Sharabani,他们向我展示了我应该寻找的地方。

您可以尝试从命令行执行它并查看吗?func2不能为空;您将得到“IndentationError:应为缩进块”。如果您希望函数不执行任何操作,请添加
pass
。否,函数定义不需要在其调用函数下缩进。你能不能提供更多的细节,比如错误的文本?@Joshuavery-这就是我的想法(以及问题的原因)。我更新了问题以添加错误消息。对我来说特别奇怪的是,当我对接收到错误的被调用函数进行双缩进时,错误会转移到下一个(被调用的)函数,然后转移到下一个函数,等等。我对python很陌生,但我只是不记得以前必须缩进被调用的函数。您是否在
main()
函数中定义函数?是的,我意识到这一点。抱歉,我提供的是我的代码结构的不可运行的超级缩写格式副本,而不是可运行的代码。但是你是对的——我应该添加它以使伪代码更具可读性。谢谢你指出这一点。(我已经更新了伪代码示例以修复该遗漏)
def func2(moredata):
    pass
func1():...
func2():...
func3():
func4():...
func5():...