间距不正确?我没看到哪里

时间:2015-01-02 23:41:39

标签: python python-3.x

所以我写了一个函数,允许我为我的程序的其余部分读取表的一些元素,但是,当我运行它时,IDLE说'在缩进中不一致地使用制表符和空格' / em>在elif currentState == True:行。我在哪里错误地标记?

def irOn(irRecv, irData):
    if irRecv == True:
        appLabel, irFrq, currentState = irTable[irData]
        if currentState == False:
                        global newState
                        newState = True
                elif currentState == True:
                        newState = False

        print("New ", appLabel, " status ", newState, " via ", irFrq)
        global recvData
        recvData = False

4 个答案:

答案 0 :(得分:3)

试试这个:

def irOn(irRecv, irData):
    if irRecv == True:
        appLabel, irFrq, currentState = irTable[irData]
        if currentState == False:
            global newState
            newState = True
        elif currentState == True:
            newState = False

        print("New ", appLabel, " status ", newState, " via ", irFrq)
        global recvData
        recvData = False

elif位置不正确,应与if缩进相同。

python中的缩进不必通过制表符对齐,而是通过相对位置彼此对齐。为了消除更多的困惑,http://www.secnetix.de/olli/Python/block_indentation.hawk

答案 1 :(得分:1)

根据您的错误消息,我假设您正在使用PyCharm IDE或任何类似的。 如果您无法找到错误,请避免使用自动监护选项和重新格式化代码等问题:选择代码,点击菜单中的codeReformat code...

def irOn(irRecv, irData):
    if irRecv == True:
        appLabel, irFrq, currentState = irTable[irData]
        if currentState == False:
            global newState
            newState = True
        elif currentState == True:
           newState = False

        print("New ", appLabel, " status ", newState, " via ", irFrq)
        global recvData
        recvData = False

答案 2 :(得分:0)

elif的缩进需要与if的缩进相匹配。

答案 3 :(得分:0)

这个问题很容易解决。如果您在记事本或记事本++中只是突出显示您的代码,请按住TAB键直到所有代码都是UN缩进,然后将其缩进到必要的位置。你只需要为你重置缩进,复制和粘贴永不缩进,它似乎仍然是相同的,我可以保证,如果你键入代码开始它就没关系。 z如果您需要更多帮助,请告诉我。答案是重置你的缩进。