this post was submitted on 12 Jun 2025
572 points (98.6% liked)

Programmer Humor

24186 readers
432 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
 
you are viewing a single comment's thread
view the rest of the comments
[–] Kaboom@reddthat.com 8 points 3 days ago (2 children)
[–] jacksilver@lemmy.world 18 points 3 days ago (2 children)

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

[–] Nalivai@discuss.tchncs.de 1 points 1 day ago (1 children)

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 1 day 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.

[–] entropicdrift@lemmy.sdf.org 3 points 3 days ago

Yep, it's this

[–] BassTurd@lemmy.world 9 points 3 days ago* (last edited 3 days 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.