logo

Razlika med != in ni operator v Pythonu

V tem članku si bomo ogledali != (Neenaki) operatorji. V Pythonu != je opredeljen kot ni enako operater. Vrača se Prav če operanda na obeh straneh nista enaka drug drugemu, in vrne False če sta enaka. Ker ni preveri, ali je id() dveh objektov enak ali ne. Če je isto, se vrne False in če ni enako, se vrne Prav. in ni vrne True, če operanda na obeh straneh nista enaka drug drugemu, in vrne false, če sta enaka.

Razumejmo koncepte enega za drugim:

Primer 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))>

>

>

Izhod:

False 140733278626480 140733278626480 False 2693154698864 2693154698864 True 2693232342792 2693232342600>

Pojasnilo:

  1. Najprej s celoštevilskimi podatki je bil izhod napačen, ker se obe spremenljivki a, b nanašata na iste podatke 10.
  2. Drugič, s podatki niza je bil izhod napačen, ker se obe spremenljivki c, d nanašata na iste podatke Python.
  3. Tretjič s podatki seznama je bil rezultat resničen, ker imata spremenljivki e, f različen pomnilniški naslov. (Čeprav imata obe spremenljivki enake podatke)

Primer 2:

!= je opredeljen kot ni enako operater. Vrača se Prav če operanda na obeh straneh nista enaka drug drugemu, in vrne False če sta enaka.

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

pretvorba niza v int v javi
>

>

Izhod:

False 140733278626480 140733278626480 False 2693154698864 2693154698864 False 2693232369224 2693232341064>

Primer 3:

The != primerja vrednost ali enakost dveh predmetov, medtem ko Python ni preveri, ali dve spremenljivki kažeta na isti objekt v pomnilniku.

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

>

>

Izhod:

First else Condition False Second if Condition True Third else Condition False Fourth if Condition True>

Pojasnilo:

  1. Izhod iz najprej če pogoj je False, saj sta seznam1 in seznam2 prazna seznama.
  2. Drugič, če pogoj pokaže True, ker sta dva prazna seznama na različnih pomnilniških lokacijah. Zato se seznam1 in seznam2 nanašata na različne predmete. To lahko preverimo s funkcijo id() v pythonu, ki vrne identiteto objekta.
  3. Izhod iz tretji če pogoj je False, saj seznam1 in seznam3 kažeta na isti objekt.
  4. Izhod iz četrti če pogoj je True, ker veriženje dveh seznamov vedno ustvari nov seznam.