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!
>=
and<
= match the mathematical operators. The question you want to ask is why doesn’t it use=
for equality, and the answer is that=
is already used for assignment (inherited from C among other languages).In theory a language could use
=
for assignment and equality but it might be a bit confusing and error prone. Maybe not though. Someone try it and report back.I’ve written code before in some hardware-specific languages before (I think it was for programming a stepper motor or something?) that used
=
for both assignment and comparison. If I recall correctly, the language was vaguely C-like, but assignment was not permitted in the context of a comparison. So something likeif( a = (b+c) )
would not assign a value toa
, it would just do the comparison.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