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!

  • FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    11
    ·
    8 hours ago

    >= 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.

    • owenfromcanada@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      5 hours ago

      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 like if( a = (b+c) ) would not assign a value to a, it would just do the comparison.

    • Ephera
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      7 hours ago

      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