Modern Programming
-
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.
-
Python does that, too.
https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not
Are you just referring to how Python uses the English
and
/or
instead of the more common&&
/||
? I think what the user above you was talking about was Lua's strange ternary syntax usingand
/or
. -
Ah that makes sense.
It doesn't make sense. I understand it, but it doesn't make sense.
-
Python is kinda like that in general, unless you try to make it read like ass
You would not believe the number of people I’ve interviewed who excel at making Python read like ass.
-
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.
-
It's kinda natural to me having used Perl a lot.
That's not quite the argument you might think it is