间距不正确?我看不出在哪里



所以我写了一个函数,允许我为程序的其余部分读取表的某些元素,但是,当我运行它时,python IDLE 在行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

试试这个:

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

根据您的错误消息,我假设您正在使用PyCharm IDE或任何类似的东西。为避免此类问题,请使用自动意图选项,如果找不到错误,请重新格式化代码:选择代码,单击菜单中的code,然后Reformat 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
elif 的缩进

需要与 if 的缩进匹配。

最新更新