Różnica między != i nie jest operatorem w Pythonie
W tym artykule zobaczymy != (Nierówne) operatory. W Pythonie != definiuje się jako nie równe operator. To powraca PRAWDA jeśli operandy po obu stronach nie są sobie równe, i zwraca FAŁSZ jeśli są równe. Mając na uwadze, że nie jest operator sprawdza, czy id() dwóch obiektów jest takie samo, czy nie. Jeśli to samo, powraca FAŁSZ a jeśli nie to samo, powraca PRAWDA. I nie jest operator zwraca True, jeśli operandy po obu stronach nie są sobie równe, i zwraca Fałsz, jeśli są równe.
Rozumiemy pojęcia jeden po drugim:
Przykład 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))> |
Wyjście:
False 140733278626480 140733278626480 False 2693154698864 2693154698864 True 2693232342792 2693232342600
Wyjaśnienie:
- Najpierw w przypadku danych całkowitych wynik był fałszywy, ponieważ obie zmienne a, b odnoszą się do tych samych danych 10.
- Po drugie, w przypadku danych łańcuchowych wynik był fałszywy, ponieważ obie zmienne c, d odnoszą się do tych samych danych Pythona.
- Po trzecie, w przypadku danych listowych wynik był prawdziwy, ponieważ zmienne e, f mają inny adres pamięci. (Mimo że obie zmienne mają te same dane)
Przykład 2:
!= definiuje się jako nie równe operator. To powraca PRAWDA jeśli operandy po obu stronach nie są sobie równe, i zwraca FAŁSZ jeśli są równe.
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))> |
Wyjście:
False 140733278626480 140733278626480 False 2693154698864 2693154698864 False 2693232369224 2693232341064
Przykład 3:
The != operator porównuje wartość lub równość dwóch obiektów, podczas gdy Python nie jest operator sprawdza, czy dwie zmienne wskazują na ten sam obiekt w pamięci.
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'> )> |
Wyjście:
First else Condition False Second if Condition True Third else Condition False Fourth if Condition True
Wyjaśnienie:
- Dane wyjściowe najpierw jeśli warunek ma wartość Fałsz, ponieważ zarówno lista1, jak i lista2 są listami pustymi. Po drugie, jeśli warunek ma wartość True, ponieważ dwie puste listy znajdują się w różnych lokalizacjach pamięci. Dlatego lista1 i lista2 odnoszą się do różnych obiektów. Możemy to sprawdzić za pomocą funkcji id() w Pythonie, która zwraca tożsamość obiektu.
- Dane wyjściowe trzeci jeśli warunek ma wartość Fałsz, ponieważ zarówno lista1, jak i lista3 wskazują na ten sam obiekt.
- Dane wyjściowe czwarty jeśli warunek jest prawdziwy, ponieważ połączenie dwóch list zawsze tworzy nową listę.