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

Incorrect spacing? I fail to see where

所以我编写了一个函数,允许我为我的程序的其余部分读取 table 的一些元素,但是,当我运行它时 python IDLE 说 'Inconsistent use of tabs and spaces in indentation'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

elif的缩进需要和if的缩进相匹配

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