logo

Forskellen mellem != og er ikke operator i Python

I denne artikel skal vi se != (Ikke lige) operatører. I Python != er defineret som ikke lig med operatør. Det vender tilbage Rigtigt hvis operander på begge sider ikke er ens med hinanden, og vender tilbage Falsk hvis de er lige. Hvorimod er ikke operatoren kontrollerer, om id() af to objekter er ens eller ej. Hvis det er det samme, vender det tilbage Falsk og hvis det ikke er det samme, vender det tilbage Rigtigt. Og er ikke operator returnerer True, hvis operander på begge sider ikke er ens med hinanden, og returnerer falsk, hvis de er ens.

Lad os forstå begreberne én efter én:

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

>

>

Produktion:

False 140733278626480 140733278626480 False 2693154698864 2693154698864 True 2693232342792 2693232342600>

Forklaring:

  1. Først med heltalsdata var outputtet falsk, fordi begge variable a, b refererer til samme data 10.
  2. For det andet med strengdata var outputtet falsk, fordi begge variable c, d refererer til samme data Python.
  3. For det tredje med listedata var outputtet sandt, fordi variablerne e, f har forskellig hukommelsesadresse. (Selvom begge variable har de samme data)

Eksempel 2:

!= er defineret som ikke lig med operatør. Det vender tilbage Rigtigt hvis operander på begge sider ikke er ens med hinanden, og vender tilbage Falsk hvis de er lige.

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

solrig deol alder
>

>

Produktion:

False 140733278626480 140733278626480 False 2693154698864 2693154698864 False 2693232369224 2693232341064>

Eksempel 3:

Det != operator sammenligner værdien eller ligheden af ​​to objekter, hvorimod Python er ikke operatør kontrollerer, om to variabler peger på det samme objekt i hukommelsen.

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

>

>

Produktion:

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

Forklaring:

  1. Outputtet af først hvis betingelsen er falsk, da både liste1 og liste2 er tomme lister.
  2. For det andet, hvis betingelsen viser Sand, fordi to tomme lister er på forskellige hukommelsesplaceringer. Derfor refererer liste1 og liste2 til forskellige objekter. Vi kan tjekke det med id() funktion i python, som returnerer identiteten af ​​et objekt.
  3. Outputtet af tredje hvis betingelsen er falsk, da både liste1 og liste3 peger på det samme objekt.
  4. Outputtet af fjerde hvis betingelsen er Sand, fordi sammenkædningen af ​​to lister altid producerer en ny liste.