Python Ungleich-Operator

Der Python-Ungleichheitsoperator gibt True zurück, wenn zwei Variablen desselben Typs sind und unterschiedliche Werte haben; wenn die Werte gleich sind, gibt er False zurück. Python ist eine dynamisch und stark typisierte Sprache, daher gibt der Ungleichheitsoperator True zurück, wenn zwei Variablen denselben Wert haben, aber unterschiedliche Typen sind.

Python-Ungleichheitsoperatoren

Operator Description
!= Not Equal operator, works in both Python 2 and Python 3.
<> Not equal operator in Python 2, deprecated in Python 3.

Python 2 Beispiel

Hier sind einige Beispiele für den Ungleichheitsoperator in Python 2.7.

$ python2.7
Python 2.7.10 (default, Aug 17 2018, 19:45:58) 
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 10 <> 20
True
>>> 10 <> 10
False
>>> 10 != 20
True
>>> 10 != 10
False
>>> '10' != 10
True
>>> 

Python 3 Beispiel

Hier sind einige Beispiele mit der Python 3-Konsole.

$ python3.7
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 10 <> 20
  File "<stdin>", line 1
    10 <> 20
        ^
SyntaxError: invalid syntax
>>> 10 != 20
True
>>> 10 != 10
False
>>> '10' != 10
True
>>> 

Wir können den Python-Ungleichheitsoperator auch mit f-Strings verwenden, wenn Sie Python 3.6 oder eine höhere Version verwenden.

x = 10
y = 10
z = 20

print(f'x is not equal to y = {x!=y}')

flag = x != z
print(f'x is not equal to z = {flag}')

# python is strongly typed language
s = '10'
print(f'x is not equal to s = {x!=s}')

Ausgabe:

x is not equal to y = False
x is not equal to z = True
x is not equal to s = True

Python ist nicht gleich mit benutzerdefiniertem Objekt

Wenn wir den ungleichen Operator verwenden, ruft er die Funktion __ne__(self, other) auf. Daher können wir unsere benutzerdefinierte Implementierung für ein Objekt definieren und das natürliche Ergebnis ändern. Angenommen, wir haben die Klasse Data mit den Feldern – id und record. Wenn wir den ungleichen Operator verwenden, möchten wir nur den Vergleich für den record-Wert durchführen. Dies können wir erreichen, indem wir unsere eigene __ne__() -Funktion implementieren.

class Data:
    id = 0
    record = ''

    def __init__(self, i, s):
        self.id = i
        self.record = s

    def __ne__(self, other):
        # gib wahr zurück, wenn verschiedene Typen
        if type(other) != type(self):
            return True
        if self.record != other.record:
            return True
        else:
            return False


d1 = Data(1, 'Java')
d2 = Data(2, 'Java')
d3 = Data(3, 'Python')

print(d1 != d2)
print(d2 != d3)

Ausgabe:

False
True

Beachten Sie, dass die record-Werte von d1 und d2 gleich sind, aber die „id“ unterschiedlich ist. Wenn wir die __ne__() -Funktion entfernen, lautet die Ausgabe wie folgt:

True
True

Sie können das vollständige Python-Skript und weitere Python-Beispiele aus unserem GitHub-Repository überprüfen.

Source:
https://www.digitalocean.com/community/tutorials/python-not-equal-operator