Автор оригинала: Pankaj Kumar.
Python не равный оператор возвращает Правда
Если две переменные имеют тот же тип и имеют разные значения , если значения одинаковы, то он возвращает Ложь
Отказ
Python – это динамический и сильно напечатанный язык, поэтому, если две переменные имеют одинаковые значения, но они имеют разные тип, то не равный оператор вернет Правда
Отказ
Python не равные операторы
знак равно | Не равный оператор, работает как в Python 2, так и в Python 3. |
<> | Не равный оператор в Python 2, устаревший в Python 3. |
Пример Python 2
Давайте посмотрим некоторые примеры неравной оператора в 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
Вот несколько примеров с консолью Python 3.
$ 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 "", line 1 10 <> 20 ^ SyntaxError: invalid syntax >>> 10 != 20 True >>> 10 != 10 False >>> '10' != 10 True >>>
Мы можем использовать Python не равный оператор с F-Strings, если вы используете Python 3.6 или более высокую версию.
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}')
Выход:
x is not equal to y = False x is not equal to z = True x is not equal to s = True
Python не равен нестандартным объектом
Когда мы используем не равный оператор, он называет __ne __ (Self, Другое)
функция. Таким образом, мы можем определить нашу собственную реализацию для объекта и изменять естественный выход.
Допустим, у нас есть Данные
Класс с полями – ID и запись. Когда мы используем неравному оператору, мы просто хотим сравнить его для записи. Мы можем достичь этого путем реализации нашей собственной функции __ne __ ().
class Data: id = 0 record = '' def __init__(self, i, s): self.id = i self.record = s def __ne__(self, other): # return true if different 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)
Выход:
False True
Обратите внимание, что значения записи D1 и D2 одинаковы, но «ID» отличается. Если мы удалим функцию __ne __ (), то выход будет такой:
True True