所以我写了一个函数,允许我为我的程序的其余部分读取表的一些元素,但是,当我运行它时,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
答案 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或任何类似的。
如果您无法找到错误,请避免使用自动监护选项和重新格式化代码等问题:选择代码,点击菜单中的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
答案 2 :(得分:0)
elif的缩进需要与if的缩进相匹配。
答案 3 :(得分:0)
这个问题很容易解决。如果您在记事本或记事本++中只是突出显示您的代码,请按住TAB键直到所有代码都是UN缩进,然后将其缩进到必要的位置。你只需要为你重置缩进,复制和粘贴永不缩进,它似乎仍然是相同的,我可以保证,如果你键入代码开始它就没关系。 z如果您需要更多帮助,请告诉我。答案是重置你的缩进。