There isn't really any better way than testing each condition individually, but you can do that compactly in a list comprehension, eg:
conditions = (xpr0, xpr1, xpr2, xpr3)
print [i for i, xpr in enumerate(conditions) if xpr]
will print a list of the indices of expressions that are true. However, this won't perform the short-circuiting that you get with or.
Of course, you can force short-circuiting by using a "traditional" for loop, with a break statement, eg:
for i, xpr in enumerate(conditions):
if xpr:
print i, xpr
break
although this isn't exactly the same as the short-circuiting performed by
if xpr0 or xpr1 or xpr2 or xpr3:
because we've already pre-computed all the expressions in the conditions list.
As hiro protagonist mentions in the comments, you can test if any of those expressions are true with
any(conditions)
and that will short-circuit in the same way as the traditional for loop code above.
FWIW, normally, one uses any and all on a generator expression rather than a list comp, since that avoids unnecessary evaluation of expressions after a short-circuit point is reached, but that's not applicable here.
any(xpr1, xpr2, ...)? to debug you could use[bool(x) for x in (xp1, xpr2, ...)].