I mean, it does have enough ways to write the same thing that it can really allow for some funny code golf, but some people just have no sense of readability whatsoever.
Is it really more natural for a non-programmer than “if statement is true than a else b”? I can’t evaluate because of decades of C, so for me the python logic is still bizarre.
For C at least it doesn’t have the actual words, so you need to know what the specific symbols are var = condition ? a : b. In that expression we don’t know what a or b are in regards to the condition.
Python literally is a if condition else b, so it reads out what is being done.
Edit… I reread your comment and realized that python does it differently and that everything I typed was irrelevant… I’m still gonna leave it if anyone is interested in ternary expressions, but I suppose the answer to your question is, that’s just how python does it.
That’s how ternary operators are designed to work. In essence, if you’re looking to do a single line if/then, you can directly assign a variable from the result of a ternary expression.
As an example, I was scripting something earlier where there may or may not be a value returned from a function, but I still had to do something with that return value later. For this thing, I was using JavaScript.
A ternary starts with a boolean expression, then the if true value, else the false value. That’s returned to either a variable or if in a function like my example, to the object calling the function. It’s just a way to write less code that in many cases is easier to read.
print("odd" if num % 2 else "even")
That’s the native python version, for those curious
That’s way too non-convoluted enough
Python is kinda like that in general, unless you try to make it read like ass
Clearly an inferior language. /s
You would not believe the number of people I’ve interviewed who excel at making Python read like ass.
I mean, it does have enough ways to write the same thing that it can really allow for some funny code golf, but some people just have no sense of readability whatsoever.
Oh wow, I think I hate that… Condition between the results? Yuck.
Why is the return first?
I think the idea is it reads more naturally, so you can read it like this
return A if statement is true else return B
Is it really more natural for a non-programmer than “if statement is true than a else b”? I can’t evaluate because of decades of C, so for me the python logic is still bizarre.
Maybe?
For C at least it doesn’t have the actual words, so you need to know what the specific symbols are
var = condition ? a : b
. In that expression we don’t know what a or b are in regards to the condition.Python literally is
a if condition else b
, so it reads out what is being done.Yep, it’s this
Edit… I reread your comment and realized that python does it differently and that everything I typed was irrelevant… I’m still gonna leave it if anyone is interested in ternary expressions, but I suppose the answer to your question is, that’s just how python does it.
That’s how ternary operators are designed to work. In essence, if you’re looking to do a single line if/then, you can directly assign a variable from the result of a ternary expression.
As an example, I was scripting something earlier where there may or may not be a value returned from a function, but I still had to do something with that return value later. For this thing, I was using JavaScript.
I ended up with:
return platform == "name" ? "Option 1" : "Option 2"
If I were to write that out in a typical if/then it would be:
if (platform == "name") { return "option 1" } else { return "option 2" }
A ternary starts with a boolean expression, then the if true value, else the false value. That’s returned to either a variable or if in a function like my example, to the object calling the function. It’s just a way to write less code that in many cases is easier to read.