Python ongelijk operator

Python not equal operator retourneert True als twee variabelen van hetzelfde type zijn en verschillende waarden hebben, als de waarden hetzelfde zijn, retourneert het False. Python is een dynamische en sterk getypeerde taal, dus als de twee variabelen dezelfde waarden hebben maar van verschillend type zijn, zal de niet-gelijk operator True retourneren.

Python niet-gelijk operators

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 Voorbeeld

Laten we eens kijken naar enkele voorbeelden van de niet-gelijk operator 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 Voorbeeld

Hier zijn enkele voorbeelden met de Python 3-console.

$ 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
>>> 

We kunnen de Python niet-gelijk operator ook gebruiken met f-strings als je Python 3.6 of een nieuwere versie gebruikt.

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}')

Output:

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

Python niet gelijk aan aangepast object

Bij gebruik van de ongelijkheidsoperator wordt de __ne__(self, other)-functie aangeroepen. Hierdoor kunnen we onze eigen implementatie voor een object definiëren en de natuurlijke output wijzigen. Laten we zeggen dat we een Data-klasse hebben met de velden – id en record. Wanneer we de ongelijkheidsoperator gebruiken, willen we alleen de recordwaarde vergelijken. Dit kunnen we bereiken door onze eigen __ne__() functie te implementeren.

class Data:
    id = 0
    record = ''

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

    def __ne__(self, other):
        # retourneer waar als verschillende types
        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)

Output:

False
True

Merk op dat de recordwaarden van d1 en d2 hetzelfde zijn, maar dat de “id” verschillend is. Als we de __ne__() functie verwijderen, zal de output er zo uitzien:

True
True

Je kunt het volledige Python-script en meer Python-voorbeelden bekijken op onze GitHub Repository.

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