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