我正在尝试在Python中的if语句中添加多个条件,如下所示:
if (h9 == h1 or h9 == h2 or h9 == h3 or h9 == h4 or h9 == h5 or h9 == h6 or h9 == h7 or h9 == h8) and (h10 == h1 or h10 == h2 or h10 == h3 or h10 == h4 or h10 == h5 or h10 == h6 or h10 == h7 or h10 == h8) :
do sth.
基本上它同时是h9
和h10
的OR条件
但是,这不起作用,并出现如下错误:
IndentationError: unindent does not match any outer indentation level
有什么问题?
答案 0 :(得分:9)
在没有更多上下文的情况下不知道缩进错误,但是您可以采取以下措施来缩短if
条件:
lst = [h1, h2, h3, h4, h5, h6, h7, h8]
if h9 in lst and h10 in lst:
pass
此外,您应该使用更多描述性变量名称。
哦,如果你有很多元素并计划进行大量的搜索,你可能会喜欢这些集:
s = set([h1, h2, h3, h4, h5, h6, h7, h8]) # {h1, h2, h3, ...} in Python 3.x
if h9 in s and h10 in s:
pass
答案 1 :(得分:4)
如果你必须使用长条件,你可以将整个if条件括在括号中,你可以将它放在多行上而不会出现缩进错误。
a = 2
b = 2
if ((a == 1 or a == 2) and
(b == 1 or b == 2)):
print "hello"
答案 2 :(得分:0)
这里没有缩进问题。
我认为do sth.
内存在缩进问题。
答案 3 :(得分:0)
另一种选择是:
if any(h in {h1,h2,...} for h in (h9, h10)):