Search code examples
pythonsyntaxoperatorspython-2.x

What does `<>` mean in Python?


I'm trying to use in Python 3.3 an old library (dating from 2003!). When I import it, Python throws me an error because there are <> signs in the source file, e.g.:

if (cnum < 1000 and nnum <> 1000 and ntext[-1] <> "s":
    ...

I guess it's a now-abandoned sign in the language.

What exactly does it mean, and which (more recent) sign should I replace it with?


Solution

  • It means not equal to. It was taken from ABC (python's predecessor) see here:

    x < y, x <= y, x >= y, x > y, x = y, x <> y, 0 <= d < 10

    Order tests (<> means 'not equals')

    I believe ABC took it from Pascal, a language Guido began programming with.

    It has now been removed in Python 3. Use != instead. If you are CRAZY you can scrap != in the REPL (not in a script) and allow only <> in Py3K using this easter egg:

    >>> from __future__ import barry_as_FLUFL
    >>> 1 != 2
      File "<stdin>", line 1
        1 != 2
           ^
    SyntaxError: with Barry as BDFL, use '<>' instead of '!='
    >>> 1 <> 2
    True