我在方法中使用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中弹出一个值并使其为空,这可能是问题。
答案 0 :(得分:0)
通过替换
来测试代码com_text == "trivia":
使用
True:
如果不成功,您的所有条件都不会运行。
如果在更改后一切正常,那么可能是您的编辑器不喜欢您的空行间距。作为完整性检查,删除空行并查看它是否按预期工作(如果空白行没有正确的缩进,某些编辑器可能无效,并且您的空白行似乎没有缩进)。