I Python kan du bruke operatorer for ulikhet og likhet for å sjekke om to Python-objekter har identiske verdier. Denne guiden vil utforske hvordan du bruker disse operatorene, med mange kodeeksempler.
I denne opplæringen vil du lære:
- Syntaxen for ulikhetsoperatoren (!=) og bruksområdene
- Syntaxen for likhetsoperatoren (==) med demonstrasjoner, og
- Anvendelsen av «er» og «er ikke» operatorer for å undersøke identiteten til to Python-objekter.
La oss starte.
Syntax for Pythons ulikhetsoperator
For to Python-objekter, obj1 og obj2, er den grunnleggende strukturen for å bruke ulikhetsoperatoren som følger:
<obj1> != <obj2>
- Returnerer True når verdiene til obj1 og obj2 er forskjellige, og
- Returnerer False i alle andre tilfeller.
Viktig: Som nevnt, kan obj1 og obj2 være av forskjellige typer, som heltall, flyttall, tekstrenger, lister, osv.
Eksempler på kode med Pythons ulikhetsoperator
I dette segmentet, la oss se på noen kodeeksempler for å få en dypere forståelse av ulikhetsoperatoren.
Bruk av ulikhetsoperatoren i Python for sammenligning
Her er vårt første eksempel:
num1 = 27 num2 = 3*9 num1 != num2 # Output: False
Du kan utføre kodeeksemplene på tipsbilk.net Python IDE direkte i nettleseren din, eller du kan kjøre dem lokalt på din maskin.
Ettersom num1 er satt til 27, og num2 også evalueres til 27 (3*9 = 27), er verdiene til num1 og num2 like. Dermed vil !=-operatoren returnere False.
La oss se på et annet eksempel.
I koden nedenfor er num1 satt til 7. Og num2 er satt til strengen «7». Siden de har ulike datatyper, vil ulikhetsoperatoren returnere True.
num1 = 7 num2 = "7" num1 != num2 # Output: True
Du kan konvertere strengen til et heltall, som vist her:
num1 = 7 num2 = int("7") num1 != num2 # Output: False
I dette tilfellet ser du at det returnerte resultatet er usant, siden num1 og num2 nå begge er det samme heltallet 7.
Du kan også benytte ulikhetsoperatoren på samlinger av data som lister, tupler og mengder.
Merk: For datastrukturer som lister, vil ulikhetsoperatoren sjekke verdiene til hvert enkelt element. For eksempel er to lister, liste1 og liste2 – begge med lengden n – like kun hvis liste1[i] == liste2[i] for hvert i i {0,1,2,3,..n-1}.
Her er et eksempel:
list1 = [2,4,6,8] list2 = [2,4,6,9] list1 != list2 # Output: True
I eksemplet over skiller liste1 og liste2 seg med bare ett element. Ulikhetsoperatoren != returnerer True som forventet.
Bruk av Pythons ulikhetsoperator i betingelser
Du vil ofte bruke ulikhetsoperatoren som en del av betingelser i Python.
For eksempel, kodeeksemplet nedenfor demonstrerer hvordan du kan sjekke om et tall er oddetall.
Et tall som ikke er delelig med 2 er et oddetall, og dette kan uttrykkes som betingelsen num%2 != 0.
num = 7 if(num%2 != 0): print("Tallet er et oddetall.") else: print("Tallet er et partall.") # Output: Tallet er et oddetall.
Du kan også bruke betingelser i listeforståelser når du ønsker å filtrere listeelementer basert på en gitt betingelse. I eksemplet nedenfor er «oddetall_10» en liste som inneholder alle oddetall mindre enn 10.
odd = [num for num in range(10) if num%2 != 0] print(odd) # Output: [1, 3, 5, 7, 9]
Og det avslutter diskusjonen vår om ulikhetsoperatoren (!=). ✅
Som du kanskje forstår nå, vil likhetsoperatoren gi det motsatte resultatet av ulikhetsoperatoren.
Du vil lære mer om den i neste avsnitt.
Syntax for Pythons likhetsoperator
Her er syntaksen for bruk av Pythons likhetsoperator:
<obj1> == <obj2> #hvor <obj1> og <obj2> er gyldige Python-objekter
- Returnerer True når verdiene til obj1 og obj2 er like, og
- Returnerer False i alle andre tilfeller.
Kodeeksempler med Pythons likhetsoperator
Likhetsoperatoren (==) kan brukes på en måte som ligner på ulikhetsoperatoren.
La oss se på følgende eksempler:
- for å sjekke om to strenger er like,
- for å kontrollere om et tall er partall, og
- bruke betingelser i listeforståelse
Bruke Pythons likhetsoperator for sammenligning
I kodeeksemplet nedenfor er str1 og str2 like med hensyn til verdi. Dermed vil likhetsoperatoren (==) returnere True.
str1 = "programmering" str2 = "programmering" str1 == str2 # Output: True
Pythons likhetsoperator
La oss nå bruke likhetsoperatoren i et betinget uttrykk.
Merk: Et tall som er jevnt delelig med 2 er et partall. Og i kode kan dette representeres som betingelsen num%2 == 0.
num = 10 if(num%2 == 0): print("Tallet er et partall.") else: print("Tallet er et oddetall.") # Output: Tallet er et partall.
La oss nå bygge videre på dette eksemplet ved å bruke Pythons listeforståelse for å hente alle partall mindre enn 10.
even_10 = [num for num in range(10) if num%2 == 0] print(even_10) # Output: [0, 2, 4, 6, 8]
I eksemplet ovenfor:
- range(10) returnerer et områdeobjekt som kan brukes til å iterere over alle heltall fra 0 til 9.
- Betingelsen num%2 == 0 er sann kun for partall.
- Derfor vil even_10 være listen over alle partall mindre enn 10.
Så langt har du lært hvordan du kan sjekke likhet ved hjelp av operatorene for ulikhet (!=) og likhet (==).
I neste del vil du lære hvordan du bekrefter identiteten til to objekter, det vil si om to Python-objekter er identiske.
Hvordan bruke Pythons «er» og «er ikke» operatorer
Hvis du er ny innen Python-programmering, er det mulig at du kan bli forvirret av forskjellene mellom == og «er» operatorene. La oss belyse dette i denne delen.
I forrige seksjon hadde vi et eksempel der str1 og str2 var like, og ==-operatoren returnerte True.
La oss nå kjøre følgende kodebit:
str1 = "programmering" str2 = "programmering" str1 is str2 # Output: False
Du kan se at str1 is str2 returnerer False.
La oss ta et steg tilbake og forstå hva Pythons «er» operator gjør.
Operatoren «er» opererer på to Python-objekter.
Den returnerer True kun dersom de to objektene er identiske, det vil si at de refererer til det samme objektet i minnet.
Selv om str1 er lik str2, er str1 is str2 False, da de refererer til to separate objekter i minnet, og dermed har de forskjellig identitet.
== og «er» er IKKE det samme.
I Python kan du benytte deg av id() funksjonen for å hente identiteten til et objekt.
▶ Kjør følgende kode for å få identiteten til str1 og str2.
id(str1) # Sample output: 139935398870320 id(str2) # Sample output: 139935398871344
Som du kan se, har str1 og str2 forskjellige identiteter. Derfor vil str1 is str2 returnere False, som forventet.
For å oppsummere:
<obj1> is <obj2> # returnerer True hvis og bare hvis id(<obj1>) == id(<obj2>) # returnerer True
La oss raskt bekrefte dette, som vist:
str1 = "programmering" str2 = str1 print(str1 is str2) print(id(str1) == id(str2)) # Output True True
Intuitivt gjør «er ikke» operatøren det motsatte av «er» operatøren.
«Er ikke» operatoren opererer på to Python-objekter.
Den returnerer False kun dersom de to objektene er identiske, det vil si at de refererer til det samme objektet i minnet. Ellers returnerer den True.
I kodeeksemplene ovenfor, prøv å erstatte «er» med «er ikke» og se hvilke resultater du får.
Konklusjon 👩💻
Vi håper at denne veiledningen har vært nyttig for deg.
For å oppsummere, har du lært:
- Hvordan du bruker likhets (==) og ulikhets (!=) operatorer for å sjekke om to Python objekter har samme verdi.
- Forskjellen mellom likhet og identitet for Python objekter, og
- Hvordan Pythons «er» og «er ikke» operatører hjelper med å sjekke om to Python objekter er identiske.
Lær hvordan du beregner tidsforskjeller eller lager et slangespill i Python her.
Vi sees i neste veiledning. Lykke til med læring og koding! 🎉