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.
Eh, reads pretty naturally to me. That said,
(like I lisp)Lisps makes more sense to me though
(if condition a b)
VS
a if condition else b
I was more talking about
(+ a b)and such.
Oh, (you) (really) (like) (Lisp)? (That’s) (great!)
(is great (oh (really (like-p lisp you))))
It’s kinda natural to me having used Perl a lot.
That’s not quite the argument you might think it is
Argument?
You know, the stuff in @_
heheh. I wasn’t really making an argument though
The joke was that Perl is a clusterfuck
You clearly haven’t used Perl a lot. Perl’s ternary looks like:
$even = $num % 2 ? “nay” : “yay”;
Incidentally, it is also the same as PHP’s, but mainly because PHP stole it.
You do get the if in the middle of stuff though in the form print(debug message) if $debug
Wait until you learn that postfix conditionals are syntactic sugar and the compiler* turns that line into the equivalent of
$debug and print(debug message), putting the conditional in first place, a lot like the ternary operator.* Perl compiles to bytecode before running.
The ternary operator itself isn’t implemented in terms of
and(andor) but it could be.Luckily I don’t need to read or write bytecode and all that matters to me is the syntax
perl -e 'print "fart\n" if 1;'
At least you guys have ternary syntax cries in kotlin.
It’s really special to not have ternary, but have Elvis.
in Scala, everything is an expression, including “if”, maybe kotlin is the same?
I think it’s just what you’re used to. Imo it really matters that it’s keywords and not operator symbols - it’s meant to read closer to natural language. I prefer the c version when it’s ? and :, but I like them this way round when it’s if and else.
That’s way too non-convoluted enough
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.
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.
Clearly an inferior language. /s
Oh wow, I think I hate that… Condition between the results? Yuck.
For optimal performance, you should rewrite it in Rust:
inline_python::python! { print(js2py.eval_js("(number) => number % 2 ? 'odd' : 'even'")(number)) };Please. That’s C’s ternary operator. JS is just a pile of garbage cosplaying as a programming language
Why do you say it’s a pile of garbage?
Because of all the garbage
Clearly the garbage collector is too effective
No they’re not supposed to be piling it up
Is a garbage collector not a garbage disposal. Smh.
One example that’s giving you problems? Maybe even on a daily basis if you use it for work? What’s garbage about it?
print( ["even", "odd"][num % 2] )If you need to avoid evaluating the wrong branch:
print( [lambda: "even", lambda: "odd"][num % 2]() )Cursed
Not as cursed as
print("eovdedn"[n%2::2])Indeed
Just send pseudo code to AI and compile straight to binary.
Peak programming
I love
something = condition and result1 or result2in luaPython 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/orinstead of the more common&&/||? I think what the user above you was talking about was Lua’s strange ternary syntax usingand/or.no, the linked table shows how python also returns the first non-falsey result of an
a or bexpression rather than just giving a boolean. it’s useful for initialising optional reference args:def foo(a: list = None) a = a or []works with
andas well.
often I do a function called elvis XD with the next signature
elvis(condition, res1, res2)
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
Are you sure it isn’t just that he’s Dutch?
num % 2isn’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.
Ah that makes sense.
It doesn’t make sense. I understand it, but it doesn’t make sense.
I agree. If anything it should check if there is a nuumber and 0 is clearly a number.
deleted by creator
deleted by creator
In JS at least, there’s a concept of truthiness and falsiness.
0,undefined,null, and a few other non-boolean values are treated asfalseif used in conditionals and logical operations, while every other value is treated astrue. I’m pretty sure python has something similar.It does. Empty collections, 0, None
The joys of dynamic typing.
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.
In JS 0 is the same as False
They are not the same, but 0 can be implicitly converted to false.
What do you get if you do: 0 === false
Explosion?
















