python-执行IF语句为TRUE的其他语句

我在标题中描述的Python语言存在问题.

 for slovo in slova:
        if pygame.mouse.get_pressed()[0] and slovo["rect"].collidepoint(pygame.mouse.get_pos()):
            for i in range (len(randRijec)):
                if slovo["name"] in randRijec[i]:
                    if i == 0:
                        slovo1 = randRijec[i].upper()
                        prvoSlovo = 1
                    ...
                    ...
                else:
                    pogresnoBrojac += 1
            slova.remove(slovo)

因此,即使此IF语句为true,ELSE语句也正在执行!但是,如果满足if语句,则应跳过else语句.

如何解决这个问题?

附:我之前几次遇到过这个问题,但无法解决…

最佳答案
您的代码中混用了制表符和空格:

运行cat -A test.py(在Unix上)会产生

     for slovo in slova:$
            if pygame.mouse.get_pressed()[0] and slovo["rect"].collidepoint(pygame.mouse.get_pos()):$
                for i in range (len(randRijec)):$
                    if slovo["name"] in randRijec[i]:$
                        if i == 0:$
                            slovo1 = randRijec[i].upper()$
                            prvoSlovo = 1$
^I^I^I^I^I^I...$
^I^I^I^I^I^I...$
                    else:$
                        pogresnoBrojac += 1$
                slova.remove(slovo)$

^ I表示标签.

因此,else块不会被解释为处于它看上去所在的缩进级别.

您的python代码绝对不要混用制表符和空格进行缩进.您可以通过运行python -t script.py来检查脚本中是否没有混用制表符和空格.

在Python中,您必须承诺仅使用空格或仅使用制表符进行缩进. PEP8建议仅使用空格缩进.

您可以使用reindent.py program将制表符转换为空格.

转载注明原文:python-执行IF语句为TRUE的其他语句 - 代码日志