Modern Programming
-
I love
something = condition and result1 or result2
in luawrote on last edited by [email protected]Python does that, too.
https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not
-
That's way too non-convoluted enough
Python is kinda like that in general, unless you try to make it read like ass
-
This post did not contain any content.
Yeah... I played that "serial killer or programming language inventor" game.
The only one I was completely in disagreement with was the inventor of Python. He's definitely a mass-murderer
-
This post did not contain any content.wrote on last edited by [email protected]
num % 2
isn't a boolean result in any of these languages, so I feel like it would always output "odd"Edit: 0 is false, everything else is true.
-
Python is kinda like that in general, unless you try to make it read like ass
Clearly an inferior language. /s
-
num % 2
isn't a boolean result in any of these languages, so I feel like it would always output "odd"Edit: 0 is false, everything else is true.
In JS 0 is the same as False
-
num % 2
isn't a boolean result in any of these languages, so I feel like it would always output "odd"Edit: 0 is false, everything else is true.
All of those languages will convert numbers into booleans, 0 is false, all other numbers are true.
-
num % 2
isn't a boolean result in any of these languages, so I feel like it would always output "odd"Edit: 0 is false, everything else is true.
The joys of dynamic typing.
-
All of those languages will convert numbers into booleans, 0 is false, all other numbers are true.
Ah, that makes sense.
-
num % 2
isn't a boolean result in any of these languages, so I feel like it would always output "odd"Edit: 0 is false, everything else is true.
0 is false in C, Python, and JS. It should work
-
num % 2
isn't a boolean result in any of these languages, so I feel like it would always output "odd"Edit: 0 is false, everything else is true.
You'd be surprised.
But seriously, numbers can be used as booleans in an impressive number of languages. Including machine code for almost every machine out there.
-
print("odd" if num % 2 else "even")
That's the native python version, for those curious
Why is the return first?
-
All of those languages will convert numbers into booleans, 0 is false, all other numbers are true.
That makes sense. However,
num % 2
equaling 0 would mean it's even, and not "odd" like the ternary operator is outputting, yeah? -
All of those languages will convert numbers into booleans, 0 is false, all other numbers are true.
Ah that makes sense.
-
num % 2
isn't a boolean result in any of these languages, so I feel like it would always output "odd"Edit: 0 is false, everything else is true.
In JS at least, there's a concept of truthiness and falsiness.
0
,undefined
,null
, and a few other non-boolean values are treated asfalse
if used in conditionals and logical operations, while every other value is treated astrue
. I'm pretty sure python has something similar. -
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
-
print("odd" if num % 2 else "even")
That's the native python version, for those curious
The ternary syntax is really my only real gripe with python design -- putting the conditional BETWEEN the true and false values feels so very messy to me.
-
Why is the return first?
wrote on last edited by [email protected]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.
-
Yeah... I played that "serial killer or programming language inventor" game.
The only one I was completely in disagreement with was the inventor of Python. He's definitely a mass-murderer
wrote on last edited by [email protected]Are you sure it isn't just that he's Dutch?
-
The ternary syntax is really my only real gripe with python design -- putting the conditional BETWEEN the true and false values feels so very messy to me.
It's kinda natural to me having used Perl a lot.