Python if,elif,else不运行if,elif或else语句

时间:2017-02-15 04:46:49

标签: python python-2.7 if-statement

我在方法中使用if,elif,else语句。当我运行代码时,它不会运行if,elif或者其他,但是当我注释掉elif语句时,它默认为else,如预期的那样。

    def message(response):
        args.pop(0)
        if com_text == "trivia":
            # triviaActive will be False
            if triviaActive:
                # Performs action
                return True
            # args[0].lower() is not equal to 'start'
            elif args[0].lower() == "start" and not triviaActive:
                # Performs action
                return True
            # So it should defaults to this else
            else:
                # Performs action
                return True

我在if,elif和else语句链上面添加了一些评论,这些评论给了我意想不到的结果。而不是默认为else语句,就像它应该在这种情况下一样,它只是从方法返回而不运行方法的其余部分。我甚至尝试在if,elif和else语句中使用print语句,但是程序没有运行它们。

(编辑) 我简化了我的if,elif和其他。即使有这个简化版本,我的elif仍然有问题。另外我想提一下,我使用pop方法从args中弹出一个值并使其为空,这可能是问题。

1 个答案:

答案 0 :(得分:0)

通过替换

来测试代码
com_text == "trivia":

使用

True:

如果不成功,您的所有条件都不会运行。

如果在更改后一切正常,那么可能是您的编辑器不喜欢您的空行间距。作为完整性检查,删除空行并查看它是否按预期工作(如果空白行没有正确的缩进,某些编辑器可能无效,并且您的空白行似乎没有缩进)。