Posted By: Anonymous
I need to print some stuff only when a boolean variable is set to
True. So, after looking at this, I tried with a simple example:
>>> a = 100 >>> b = True >>> print a if b File "<stdin>", line 1 print a if b ^ SyntaxError: invalid syntax
Same thing if I write
print a if b==True.
What am I missing here?
Python does not have a trailing
There are two kinds of
if in Python:
if condition: statement if condition: block
ifexpression (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
print (a if b else 0)
and similarly when you write
x = a if b else 0
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.