具有嵌套多个条件的if语句

2024-04-29 05:03:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在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.

基本上这是同时满足h9h10的条件 但是,这不起作用,并且会产生如下错误:

IndentationError: unindent does not match any outer indentation level

怎么了?


Tags: orandifh2语句条件h1h4
3条回答

如果必须使用长条件,可以将整个If条件括在括号中,可以将其放在多行上而不出现缩进错误。

a = 2
b = 2
if ((a == 1 or a == 2) and 
        (b == 1 or b == 2)):
    print "hello"

在没有更多上下文的情况下不知道缩进错误,但是可以做些什么来缩短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

这里没有缩进问题。 我认为在do sth.中存在缩进问题。

相关问题 更多 >