Різниця між != і не є оператором у Python
У цій статті ми збираємося побачити != (Не рівноправні) оператори. На Python != визначається як не дорівнює оператор. Воно повертається правда якщо операнди з обох сторін не дорівнюють один одному, і повертає помилковий якщо вони рівні. Тоді як не Оператор перевіряє, чи id() двох об’єктів є однаковим чи ні. Якщо те саме, воно повертається помилковий і якщо не те саме, воно повертається правда І не оператор повертає True, якщо операнди з обох сторін не дорівнюють один одному, і повертає false, якщо вони рівні.
Давайте розберемося з поняттями по черзі:
приклад 1:
Python3
a> => 10> b> => 10> > print> (a> is> not> b)> print> (> id> (a),> id> (b))> > c> => 'Python'> d> => 'Python'> print> (c> is> not> d)> print> (> id> (c),> id> (d))> > e> => [> 1> ,> 2> ,> 3> ,> 4> ]> f> => [> 1> ,> 2> ,> 3> ,> 4> ]> print> (e> is> not> f)> print> (> id> (e),> id> (f))> |
Вихід:
False 140733278626480 140733278626480 False 2693154698864 2693154698864 True 2693232342792 2693232342600
Пояснення:
- Спочатку з цілочисельними даними результат був false, оскільки обидві змінні a, b посилаються на ті самі дані 10.
- По-друге, з рядковими даними результат був false, оскільки обидві змінні c, d посилаються на ті самі дані Python.
- По-третє, з даними списку результат був істинним, оскільки змінні e, f мають різні адреси пам’яті. (Навіть якщо обидві змінні мають однакові дані)
приклад 2:
!= визначається як не дорівнює оператор. Воно повертається правда якщо операнди з обох сторін не дорівнюють один одному, і повертає помилковий якщо вони рівні.
Python3
# Python3 code to> # illustrate the> # difference between> # != and is operator> > a> => 10> b> => 10> print> (a !> => b)> print> (> id> (a),> id> (b))> > c> => 'Python'> d> => 'Python'> print> (c !> => d)> print> (> id> (c),> id> (d))> > e> => [> 1> ,> 2> ,> 3> ,> 4> ]> f> => [> 1> ,> 2> ,> 3> ,> 4> ]> print> (e !> => f)> print> (> id> (e),> id> (f))> |
Вихід:
False 140733278626480 140733278626480 False 2693154698864 2693154698864 False 2693232369224 2693232341064
приклад 3:
The != оператор порівнює значення або рівність двох об’єктів, тоді як Python не Оператор перевіряє, чи дві змінні вказують на той самий об’єкт у пам’яті.
Python3
# Python3 code to> # illustrate the> # difference between> # != and is not operator> # [] is an empty list> list1> => []> list2> => []> list3> => list1> > #First if> if> (list1 !> => list2):> > print> (> ' First if Condition True'> )> else> :> > print> (> 'First else Condition False'> )> > #Second if> if> (list1> is> not> list2):> > print> (> 'Second if Condition True'> )> else> :> > print> (> 'Second else Condition False'> )> > #Third if> if> (list1> is> not> list3):> > print> (> 'Third if Condition True'> )> else> :> > print> (> 'Third else Condition False'> )> > list3> => list3> +> list2> > #Fourth if> if> (list1> is> not> list3):> > print> (> 'Fourth if Condition True'> )> else> :> > print> (> 'Fourth else Condition False'> )> |
Вихід:
First else Condition False Second if Condition True Third else Condition False Fourth if Condition True
Пояснення:
- Вихід спочатку якщо умова хибна, оскільки список1 і список2 є порожніми списками. По-друге, якщо умова показує True, оскільки два порожні списки знаходяться в різних місцях пам’яті. Отже, list1 і list2 посилаються на різні об’єкти. Ми можемо перевірити це за допомогою функції id() у Python, яка повертає ідентичність об’єкта.
- Вихід третє якщо умова є False, оскільки і list1, і list3 вказують на той самий об’єкт.
- Вихід четвертий якщо умова має значення True, тому що конкатенація двох списків завжди створює новий список.