Putting a simple if-then-else statement on one line
That's more specifically a ternary operator expression than an if-then, here's the python syntax
value_when_true if condition else value_when_false
Better Example: (thanks Mr. Burns)
'Yes' if fruit == 'Apple' else 'No'
Now with assignment and contrast with if syntax
fruit = 'Apple'
isApple = True if fruit == 'Apple' else False
vs
fruit = 'Apple'
isApple = False
if fruit == 'Apple' : isApple = True
c - if + else if + else in one line?
If you see e.g. this conditional expression reference you can see that the format of a "ternary expression" is
condition ? expression-true : expression-false
All three parts of the conditional expressions are, in turn, expressions. That means you can have almost any kind of expression, including nested conditional (ternary) expressions in them.
It should be noted that conditional expressions might make the code harder to read and understand, especially if used badly or if one attempt to put too much logic and nesting into the expressions.
Putting an if-elif-else statement on one line?
No, it's not possible (at least not with arbitrary statements), nor is it desirable. Fitting everything on one line would most likely violate PEP-8 where it is mandated that lines should not exceed 80 characters in length.
It's also against the Zen of Python: "Readability counts". (Type import this
at the Python prompt to read the whole thing).
You can use a ternary expression in Python, but only for expressions, not for statements:
>>> a = "Hello" if foo() else "Goodbye"
Edit:
Your revised question now shows that the three statements are identical except for the value being assigned. In that case, a chained ternary operator does work, but I still think that it's less readable:
>>> i=100
>>> a = 1 if i<100 else 2 if i>100 else 0
>>> a
0
>>> i=101
>>> a = 1 if i<100 else 2 if i>100 else 0
>>> a
2
>>> i=99
>>> a = 1 if i<100 else 2 if i>100 else 0
>>> a
1
Javascript one line If...else...else if statement
Sure, you can do nested ternary operators but they are hard to read.
var variable = (condition) ? (true block) : ((condition2) ? (true block2) : (else block2))
Bash: If/Else statement in one line
There is no need to explicitly check $?
. Just do:
ps aux | grep some_proces[s] > /tmp/test.txt && echo 1 || echo 0
Note that this relies on echo not failing, which is certainly not guaranteed. A more reliable way to write this is:
if ps aux | grep some_proces[s] > /tmp/test.txt; then echo 1; else echo 0; fi
One line if/else in JavaScript
You want a ternary operator:
properties['Value'] = (IsItMuted === true) ? 'On' : 'Off';
The ? :
is called a ternary operator and acts just like an if
/else
when used in an expression.
How to do one-liner if else statement?
As the comments mentioned, Go doesn't support ternary one liners. The shortest form I can think of is this:
var c int
if c = b; a > b {
c = a
}
But please don't do that, it's not worth it and will only confuse people who read your code.
Python if-else on one line with continue statement
No, this is not possible in python
you will have to revert to:
for x in range(10):
if x<5:
continue
However, like the comments pointed out you can make a one line if out of that:
if x < 5: continue
I would not recommend using if
statements like that tho since it makes the code harder to read and you do not really gain anything from it.
One line if/else condition in linux shell scripting
It looks as if you were on the right track. You just need to add the else statement after the ";" following the "then" statement. Also I would split the first line from the second line with a semicolon instead of joining it with "&&".
maxline='cat journald.conf | grep "#SystemMaxUse="'; if [ $maxline == "#SystemMaxUse=" ]; then sed 's/\#SystemMaxUse=/SystemMaxUse=50M/g' journald.conf > journald.conf2 && mv journald.conf2 journald.conf; else echo "This file has been edited. You'll need to do it manually."; fi
Also in your original script, when declaring maxline you used back-ticks "`" instead of single quotes "'" which might cause problems.
Related Topics
Can You Add New Statements to Python's Syntax
Creating Dataframe from a Dictionary Where Entries Have Different Lengths
How Slow Is Python's String Concatenation VS. Str.Join
How to Get Text with Selenium Webdriver in Python
Printing List Elements on Separate Lines in Python
Why Does the Print Function Return None
How to Install Packages Using Pip According to the Requirements.Txt File from a Local Directory
Differencebetween an Expression and a Statement in Python
Mkdir -P Functionality in Python
How to Reset Index in a Pandas Dataframe
Should You Always Favor Xrange() Over Range()
How to Convert a Pil Image into a Numpy Array