this post was submitted on 31 Oct 2024
46 points (96.0% liked)

Python

6331 readers
116 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

๐Ÿ“… Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

๐Ÿ Python project:
๐Ÿ’“ Python Community:
โœจ Python Ecosystem:
๐ŸŒŒ Fediverse
Communities
Projects
Feeds

founded 1 year ago
MODERATORS
 

Note: The attached image is a screenshot of page 31 of Dr. Charles Severance's book, Python for Everybody: Exploring Data Using Python 3 (2024-01-01 Revision).


I thought = was a mathematical operator, not a logical operator; why does Python use

>= instead of >==, or <= instead of <==, or != instead of !==?

Thanks in advance for any clarification. I would have posted this in the help forums of FreeCodeCamp, but I wasn't sure if this question was too.......unspecified(?) for that domain.

Cheers!

ย 


Edit: I think I get it now! Thanks so much to everyone for helping, and @[email protected] and @[email protected] in particular! ^_^

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 3 points 4 days ago* (last edited 4 days ago) (2 children)

Rust does an interesting thing in this regard. It does still have == for checking if two values are equal, but well, it actually doesn't have a traditional assignment operator. Instead, it has a unification operator, which programmers usually call "pattern matching".

And then you can use pattern matching for what's effectively an assignment and to some degree also for equivalence comparison.
See a few examples here: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=1268682eb8642af925db9a499a6d587a

[โ€“] [email protected] 2 points 4 days ago* (last edited 4 days ago)

This reminds me on the niche tool in Mathematica I've been using, which has four different assignment oparators for that purpose.

[โ€“] [email protected] 2 points 4 days ago

It doesn't still have a traditional assignment operator. You can assign values to mutable variables.

Also I would say let-binds are still pretty much assignment; they just support destructuring. Plenty of languages support that to some extent (JavaScript for example) and you wouldn't say they don't have assignment.

I don't think it affects the ability to overload = anyway. I think there aren't any situations in Rust where it would be ambiguous which one you meant. Certainly none of the examples you gave compile with both = and ==. Maybe there's some obscure case we haven't thought of.