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?
Since it is an expression, one can't use any statement inside it.
Syntax of Inline if-else in Python To write an Inline if-else statement we have to follow this syntax. In this syntax, <expression1> will be returned or executed if the condition is true, or else <expression2> will be returned or executed, and these conditions are always executed from left to right.
It is commonly referred to as the conditional operator, inline if (iif), or ternary if. An expression a ? b : c evaluates to b if the value of a is true, and otherwise to c . One can read it aloud as "if a then b otherwise c".
Python does not have a trailing if statement.
There are two kinds of if in Python:
if statement:
if condition: statement if condition:     block  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.
Inline if-else EXPRESSION must always contain else clause, e.g:
a = 1 if b else 0   If you want to leave your 'a' variable value unchanged - assing old 'a' value (else is still required by syntax demands):
a = 1 if b else a   This piece of code leaves a unchanged when b turns to be False.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With