python – How to write inline if statement for print?
python – How to write inline if statement for print?
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 dont want it to be there, you can always write the regular if
statement on a single line, though its 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.
python – How to write inline if statement for print?
The else statement is mandatory. You can do stuff like this :
python – How to write inline if statement for print?
>>> b = True
>>> a = 1 if b else None
>>> a
1
>>> b = False
>>> a = 1 if b else None
>>> a
>>>
EDIT:
Or, depending of your needs, you may try:
>>> if b: print(a)