Python multiple nested ternary expression
问题 With the Python (2.7) ternary expression x if cond else y what is the logical order when evaluating multiple expressions of these nested in order: e.g. 1 if A else 2 if B else 3 Drawing out the truth table for this is appears this is evaluated as 1 if A else (2 if B else 3) rather than (1 if A else 2) if B else 3 : A True False B True 1 2 False 1 3 Could someone please explain why this is executed in this order, and possibly suggest some material that gives an intuition about why this is used