590
you are viewing a single comment's thread
view the rest of the comments
[-] entropicdrift@lemmy.sdf.org 142 points 10 months ago
print("odd" if num % 2 else "even")

That's the native python version, for those curious

[-] DreadPirateShawn@lemmy.blahaj.zone 89 points 10 months ago

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.

[-] balsoft@lemmy.ml 22 points 10 months ago* (last edited 10 months ago)

Eh, reads pretty naturally to me. That said, (like I lisp)

[-] Shareni@programming.dev 16 points 10 months ago

Lisps makes more sense to me though

(if condition a b)

VS

a if condition else b

[-] balsoft@lemmy.ml 9 points 10 months ago

I was more talking about (+ a b) and such.

[-] rovingnothing29@lemmy.world 0 points 10 months ago

Oh, (you) (really) (like) (Lisp)? (That's) (great!)

[-] hydroptic@sopuli.xyz 5 points 10 months ago* (last edited 10 months ago)

(is great (oh (really (like-p lisp you))))

[-] rbos@lemmy.ca 12 points 10 months ago

It's kinda natural to me having used Perl a lot.

[-] SpaceNoodle@lemmy.world 21 points 10 months ago

That's not quite the argument you might think it is

[-] rbos@lemmy.ca 3 points 10 months ago
[-] SpaceNoodle@lemmy.world 14 points 10 months ago
[-] rbos@lemmy.ca 1 points 10 months ago

heheh. I wasn't really making an argument though

[-] SpaceNoodle@lemmy.world 1 points 10 months ago

The joke was that Perl is a clusterfuck

[-] rbos@lemmy.ca 1 points 10 months ago

It certainly has its issues. I find that the things people have trouble with are the things I tend to like about it. Of course, reading it later is a problem sometimes. :)

Write only language!

I still reach for it sometimes.

[-] SpaceNoodle@lemmy.world 1 points 10 months ago

The point of code is to be read by other humans, not just computers.

[-] rbos@lemmy.ca 1 points 10 months ago

Sure. Nothing stopping you writing readable well commented perl. Just avoid some of the more terse statements. It can be a challenge though.

Shrug. If you don't like Perl, don't use it.

[-] SpaceNoodle@lemmy.world 2 points 10 months ago

But I want to mock it good-naturedly, too.

[-] msage@programming.dev 2 points 10 months ago

A lots of things stop you from writing readable Perl code.

You have to forget half of the syntax first. Set perlcritic to max. Force whitespaces.

Download ton of packages for every little thing and hope they are cool with each other.

And still deal with edge cases that make you pluck your eyes out.

[-] rbos@lemmy.ca 1 points 10 months ago

FVO readable for future me, it's not so bad. I don't have to worry about other people so much. :)

[-] l3mming@lemmy.world 2 points 10 months ago* (last edited 10 months ago)

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.

[-] psud@aussie.zone 2 points 10 months ago

You do get the if in the middle of stuff though in the form print(debug message) if $debug

[-] palordrolap@fedia.io 5 points 10 months ago

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 (and or) but it could be.

[-] psud@aussie.zone 4 points 10 months ago

Luckily I don't need to read or write bytecode and all that matters to me is the syntax

[-] rbos@lemmy.ca 1 points 10 months ago

perl -e 'print "fart\n" if 1;'

[-] idunnololz@lemmy.world 4 points 10 months ago

At least you guys have ternary syntax cries in kotlin.

[-] Aqarius@lemmy.world 2 points 10 months ago

It's really special to not have ternary, but have Elvis.

[-] aubeynarf@lemmynsfw.com 1 points 9 months ago

in Scala, everything is an expression, including “if”, maybe kotlin is the same?

[-] porous_grey_matter@lemmy.ml 1 points 10 months ago

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.

[-] Gork@sopuli.xyz 9 points 10 months ago

That's way too non-convoluted enough

[-] entropicdrift@lemmy.sdf.org 17 points 10 months ago

Python is kinda like that in general, unless you try to make it read like ass

[-] wise_pancake@lemmy.ca 6 points 10 months ago

You would not believe the number of people I’ve interviewed who excel at making Python read like ass.

[-] entropicdrift@lemmy.sdf.org 6 points 10 months ago

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.

[-] Colloidal@programming.dev 5 points 10 months ago

Clearly an inferior language. /s

[-] Kaboom@reddthat.com 5 points 10 months ago
[-] jacksilver@lemmy.world 18 points 10 months ago

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

[-] entropicdrift@lemmy.sdf.org 3 points 10 months ago

Yep, it's this

[-] Nalivai@discuss.tchncs.de 1 points 10 months ago

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.

[-] jacksilver@lemmy.world 1 points 10 months ago

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.

[-] BassTurd@lemmy.world 9 points 10 months ago* (last edited 10 months ago)

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.

[-] laurelraven@lemmy.zip 3 points 10 months ago

Oh wow, I think I hate that... Condition between the results? Yuck.

this post was submitted on 12 Jun 2025
590 points (98.7% liked)

Programmer Humor

30973 readers
2347 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS