I Python kan du bruge operatorerne ikke lig med og lig med til at kontrollere, om to Python-objekter har samme værdi. Denne tutorial vil lære dig, hvordan du bruger disse operatorer med masser af eksempelkode.
I denne tutorial lærer du:
- syntaksen for operatoren ikke ens (!=) og use cases,
- syntaksen for lige-operatoren (==) med eksempler, og
- brugen af er og er ikke operatører til at kontrollere identiteten af to Python-objekter.
Lad os komme igang.
Indholdsfortegnelse
Python Not Equal Operator Syntaks
For to vilkårlige Python-objekter obj1 og obj2 er den generelle syntaks for at bruge ikke-lig-operatoren:
<obj1> != <obj2>
- returnerer Sand, når værdierne af obj1 og obj2 ikke er ens, og
- returnerer Falsk ellers.
Bemærk: Som nævnt ovenfor kan obj1 og obj2 være heltal, flydende kommatal, strenge, lister og så videre.
Python Not Equal Operator Code Eksempler
Lad os i dette afsnit kode et par eksempler for bedre at forstå den ikke lige operator.
Brug af Python Not Equal Operator til sammenligning
Her er vores første eksempel.
num1 = 27 num2 = 3*9 num1 != num2 # Output: False
Du kan køre kodeeksemplerne på toadmin.dk Python IDE – direkte fra din browser. Eller du kan vælge at køre på din lokale maskine.
Da num1 = 27, og num2 også evalueres til 27 (3*9 = 27), er værdierne af num1 og num2 ens. Så operatoren != returnerer False.
Lad os tage et andet eksempel.
I koden nedenfor er num1 sat til 7. Og num2 er sat til strengen 7. Da de er af forskellige datatyper, returnerer den ikke lige operator True.
num1 = 7 num2 = "7" num1 != num2 # Output: True
Du kaster strengen til et heltal, som vist:
num1 = 7 num2 = int("7") num1 != num2 # Output: False
I dette tilfælde kan du se, at det returnerede resultat er falsk – da num1 og num2 nu er lig med hele tallet 7.
Du kan også bruge operatoren ikke lige med Python-samlinger såsom lister, tupler og sæt.
Bemærk: For indsamlinger af data, såsom lister, fungerer den ikke lige-operator ved at kontrollere værdierne for individuelle elementer. For eksempel er to lister liste1 og liste2 – hver af længden n – kun lige, hvis liste1[i] == liste2[i] for 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 ovenstående eksempel adskiller liste1 og liste2 sig kun med ét element. Og operatoren ikke lig != returnerer True som forventet.
Brug af Python Not Equal Operator i Conditionals
Du vil ofte bruge operatoren ikke lig med som en del af Python conditionals.
For eksempel viser kodestykket nedenfor, hvordan du kan kontrollere, om et tal er ulige eller ej.
Et tal, der ikke er ligeligt deleligt med 2, er ulige. Og dette reducerer til betingelsen num%2 != 0.
num = 7 if(num%2 != 0): print("The number is odd.") else: print("The number is even.") # Output: The number is odd.
Du kan også bruge conditionals i listeforståelser når du kun vil beholde de listeelementer, der opfylder en bestemt betingelse. I eksemplet nedenfor er ulige_10 listen over alle ulige tal mindre end 10.
odd = [num for num in range(10) if num%2 != 0] print(odd) # Output: [1, 3, 5, 7, 9]
Og det fuldender vores diskussion af den ikke lige (!=) operator.✅
Som du måske har gættet nu, producerer lig med operatoren den modsatte effekt af ikke lig med operatoren.
Du lærer mere om det i næste afsnit.
Python Equal Operator Syntaks
Her er syntaksen for at bruge Pythons lig med operator:
<obj1> == <obj2> #where <obj1> and <obj2> are valid Python objects
- returnerer Sand, når værdierne af obj1 og obj2 er ens, og
- returnerer Falsk ellers.
Python Equal Operator Code Eksempler
Lige-operatoren (==) kan bruges meget på samme måde som den ikke-lige-operator.
Lad os kode følgende eksempler:
- for at kontrollere, om to strenge er ens,
- for at kontrollere om et tal er lige, og
- at bruge conditionals i listeforståelse
Brug af Python Not Equal Operator til sammenligning
I kodestykket nedenfor er str1 og str2 ens med hensyn til værdi. Så den lige operator (==) returnerer Sand.
str1 = "coding" str2 = "coding" str1 == str2 # Output: True
Python Equal Operator
Lad os nu bruge lige-operatoren i et betinget udtryk.
Bemærk: Et tal, der er ligeligt deleligt med 2, er lige. Og i kode reduceres dette til betingelsen num%2 == 0
num = 10 if(num%2 == 0): print("The number is even.") else: print("The number is odd.") # Output: The number is even.
Lad os nu bygge videre på dette eksempel, brug Pythons listeforståelse for at få alle lige tal mindre end 10.
even_10 = [num for num in range(10) if num%2 == 0] print(even_10) # Output: [0, 2, 4, 6, 8]
I ovenstående eksempel,
- range(10) returnerer et interval-objekt, som kan gennemløbes for at få alle heltal fra 0 til 9.
- Betingelsen num%2 == 0 er kun Sand for lige tal.
- Så lige_10 er listen over alle lige tal mindre end 10.
Indtil videre har du lært, hvordan du kontrollerer for lighed ved at bruge operatorerne ikke lige (!=) og lige (==).
I det næste afsnit lærer du, hvordan du bekræfter identiteten af to objekter. Du vil kontrollere, om to Python-objekter er identiske.
Sådan bruges Pythons er og er ikke operatører
Hvis du er nybegynder i Python-programmering, er det muligt, at du er forvirret mellem == og er-operatorerne. Lad os præcisere det i dette afsnit.
I det foregående afsnit havde vi et eksempel, hvor str1 og str2 hvor lig og ==-operatoren returnerede Sand.
Kør nu følgende kodestykke.
str1 = "coding" str2 = "coding" str1 is str2 # Output: False
Du kan se, at str1 er str2 returnerer False.
Lad os tage et skridt tilbage og forstå, hvad Pythons er operatør gør.
Operatoren er opererer på to vilkårlige Python-objekter.
Og returnerer kun Sand, hvis de to objekter er identiske – det vil sige, at de refererer til det samme objekt i hukommelsen.
Selvom str1 er lig med str2, er str1 ikke str2, da de peger på to forskellige objekter i hukommelsen. Og derfor har de forskellige identiteter.
== og er er IKKE det samme
I Python kan du bruge id() funktion for at få objektets identitet.
▶ Kør følgende kodecelle for at få identiteten af str1 og str2.
id(str1) # Sample output: 139935398870320 id(str2) # Sample output: 139935398871344
Som du kan se, har str1 og str2 forskellige identiteter. Og str1 er str2 returnerer False som forventet.
At sætte det sammen,
<obj1> is <obj2> # returns True if and only if id(<obj1>) == id(<obj2>) # returns True
Lad os hurtigt bekræfte dette, som vist:
str1 = "coding" str2 = str1 print(str1 is str2) print(id(str1) == id(str2)) # Output True True
Intuitivt gør ikke-operatøren det modsatte af er-operatøren.
Operatoren is not opererer på to vilkårlige Python-objekter.
Og returnerer kun Falsk, hvis de to objekter er identiske – det vil sige, at de refererer til det samme objekt i hukommelsen. Ellers returnerer den True.
I ovenstående kodeeksempler, prøv at erstatte er med er ikke og tjek resultaterne.
Konklusion 👩💻
Håber du fandt denne tutorial nyttig.
For at opsummere har du lært:
- hvordan man bruger lige (==) og ikke lige (!=) operatorer til at kontrollere, om to Python-objekter har samme værdi,
- forskellen mellem lighed og identitet af Python-objekter, og
- hvordan Python’s er og ikke er, hjælper med at kontrollere, om to Python-objekter er identiske.
Lær hvordan du beregner tidsforskel eller laver et slangespil i python her.
Vi ses alle i den næste tutorial. Indtil da, god læring og kodning!🎉