python inline if
Python does not have a trailing if statement. There are two kinds of if in Python: 1. if statement: if condition: statement if condition: block 2. if expression (introduced in Python 2.5) expression_if_true if condition else expression_if_false And note, that both print a and b = a are statements. Only the a part is an expression. So if you write print a if b else 0 it means print (a if b else 0) and similarly when you write x = a if b else 0 it means x = (a if b else 0) Now what would it print/assign if there was no else clause? The print/assignment is still there. And note, that if you don't want it to be there, you can always write the regular if statement on a single line, though it's less readable and there is really no reason to avoid the two-line variant.