U Pajtonu, možete koristiti operatore „nije jednako“ i „jednako“ kako biste proverili da li dva Pajton objekta imaju istu vrednost. Ovaj vodič će vam pokazati kako da koristite ove operatore kroz brojne primere koda.
U ovom vodiču ćete naučiti:
- Sintaksu operatora „nije jednako“ (!=) i različite slučajeve upotrebe,
- Sintaksu operatora „jednako“ (==) sa odgovarajućim primerima, i
- Upotrebu operatora „is“ i „is not“ za proveru identiteta dva Pajton objekta.
Počnimo.
Sintaksa Pajton operatora „nije jednako“
Za bilo koja dva Pajton objekta, obj1 i obj2, opšta sintaksa za korišćenje operatora „nije jednako“ je:
<obj1> != <obj2>
- Vraća
True
kada vrednosti obj1 i obj2 nisu iste, i - U suprotnom vraća
False
.
Napomena: Kao što je gore pomenuto, obj1 i obj2 mogu biti celi brojevi, brojevi sa pokretnim zarezom, stringovi, liste i slično.
Primeri koda za Pajton operator „nije jednako“
U ovom delu, pogledaćemo nekoliko primera koda kako bismo bolje razumeli operator „nije jednako“.
Korišćenje Pajton operatora „nije jednako“ za poređenje
Evo našeg prvog primera.
num1 = 27
num2 = 3*9
num1 != num2
# Izlaz: False
Primere koda možete pokrenuti u online Pajton IDE, direktno iz svog pretraživača. Ili ih možete pokrenuti lokalno, na vašem računaru.
Pošto je num1 = 27, a num2 takođe izračunava vrednost 27 (3*9 = 27), vrednosti num1 i num2 su iste. Dakle, operator != vraća False
.
Pogledajmo još jedan primer.
U kodu ispod, num1 je postavljen na 7, a num2 je postavljen na string „7“. Pošto su različitog tipa podataka, operator „nije jednako“ vraća True
.
num1 = 7
num2 = "7"
num1 != num2
# Izlaz: True
Kada string pretvorimo u ceo broj, kao što je prikazano ispod:
num1 = 7
num2 = int("7")
num1 != num2
# Izlaz: False
U ovom slučaju, vidimo da je izlaz False
– jer su num1 i num2 sada jednaki celom broju 7.
Operator „nije jednako“ možete koristiti i sa Pajton kolekcijama, kao što su liste, torke i skupovi.
Napomena: Za kolekcije podataka poput lista, operator „nije jednako“ radi tako što proverava vrednosti pojedinačnih elemenata. Na primer, dve liste lista1 i lista2 – svaka dužine n – jednake su samo ako je lista1[i] == lista2[i] za i u {0,1,2,3,..n-1}.
Evo primera:
list1 = [2,4,6,8]
list2 = [2,4,6,9]
list1 != list2
# Izlaz: True
U gornjem primeru, lista1 i lista2 se razlikuju samo u jednom elementu. I operator „nije jednako“ != vraća True
, kao što se očekivalo.
Korišćenje Pajton operatora „nije jednako“ u uslovnim izrazima
Često ćete koristiti operator „nije jednako“ kao deo uslovnih izraza u Pajtonu.
Na primer, sledeći kod prikazuje kako možete da proverite da li je broj neparan ili ne.
Broj koji nije deljiv sa 2 je neparan. To se svodi na uslov num%2 != 0
.
num = 7
if(num%2 != 0):
print("Broj je neparan.")
else:
print("Broj je paran.")
# Izlaz: Broj je neparan.
Možete koristiti uslove i u list comprehension kada želite da zadržite samo one elemente liste koji zadovoljavaju određeni uslov. U primeru ispod, odd_10 je lista svih neparnih brojeva manjih od 10.
odd = [num for num in range(10) if num%2 != 0]
print(odd)
# Izlaz: [1, 3, 5, 7, 9]
Time završavamo našu diskusiju o operatoru „nije jednako“ (!=). ✅
Kao što ste do sada mogli da pretpostavite, operator „jednako“ ima suprotan efekat od operatora „nije jednako“.
Više o tome saznaćete u sledećem odeljku.
Sintaksa Pajton operatora „jednako“
Evo sintakse za korišćenje Pajton operatora „jednako“:
<obj1> == <obj2> # gde su <obj1> i <obj2> validni Pajton objekti
- Vraća
True
kada su vrednosti obj1 i obj2 jednake, i - U suprotnom vraća
False
.
Primeri koda Pajton operatora „jednako“
Operator „jednako“ (==) se može koristiti vrlo slično kao i operator „nije jednako“.
Pogledajmo sledeće primere koda:
- Da proverimo da li su dva stringa jednaka,
- Da proverimo da li je broj paran, i
- Da koristimo uslove u list comprehension.
Korišćenje Pajton operatora „jednako“ za poređenje
U fragmentu koda ispod, str1 i str2 su jednaki u smislu vrednosti. Dakle, operator „jednako“ (==) vraća True
.
str1 = "coding"
str2 = "coding"
str1 == str2
# Izlaz: True
Pajton operator „jednako“
Hajde da sada koristimo operator „jednako“ u uslovnom izrazu.
Napomena: Broj koji je deljiv sa 2 je paran. U kodu, ovo se svodi na uslov num%2 == 0
.
num = 10
if(num%2 == 0):
print("Broj je paran.")
else:
print("Broj je neparan.")
# Izlaz: Broj je paran.
Sada ćemo da nadogradimo ovaj primer i koristimo list comprehension u Pajtonu kako bismo dobili sve parne brojeve manje od 10.
even_10 = [num for num in range(10) if num%2 == 0]
print(even_10)
# Izlaz: [0, 2, 4, 6, 8]
U gornjem primeru:
range(10)
vraća objekat opsega kroz koji možemo iterirati da bismo dobili sve cele brojeve od 0 do 9.- Uslov
num%2 == 0
jeTrue
samo za parne brojeve. - Dakle,
even_10
je lista svih parnih brojeva manjih od 10.
Do sada ste naučili kako da proverite jednakost koristeći operatore „nije jednako“ (!=) i „jednako“ (==).
U sledećem odeljku ćete naučiti kako da proverite identitet dva objekta. Proverićete da li su dva Pajton objekta identična.
Kako koristiti Pajton operatore „is“ i „is not“
Ako ste početnik u Pajton programiranju, moguće je da ste zbunjeni između operatora == i is
. Razjasnićemo to u ovom odeljku.
U prethodnom odeljku, imali smo primer gde su str1 i str2 jednaki, pa je operator == vratio True
.
Sada pokrenite sledeći kod.
str1 = "coding"
str2 = "coding"
str1 is str2
# Izlaz: False
Možete videti da str1 is str2
vraća False
.
Vratimo se korak unazad i razumemo šta radi Pajton operator is
.
Operator is
radi na bilo koja dva Pajton objekta.
I vraća True
samo ako su dva objekta identična, tj. odnose se na isti objekat u memoriji.
Iako je str1 == str2
, str1 is str2
je False
jer ukazuju na dva različita objekta u memoriji. I stoga, imaju različite identitete.
U Pajtonu, možete koristiti id()
funkciju za dobijanje identiteta objekta.
▶ Pokrenite sledeću ćeliju koda da biste dobili identitete str1 i str2.
id(str1)
# Primer izlaza: 139935398870320
id(str2)
# Primer izlaza: 139935398871344
Kao što vidite, str1 i str2 imaju različite identitete. I str1 is str2
vraća False
, kao što se očekivalo.
Zajedno:
<obj1> is <obj2> # vraća True ako i samo ako
id(<obj1>) == id(<obj2>) # vraća True
Brzo ćemo proveriti, kao što je prikazano:
str1 = "coding"
str2 = str1
print(str1 is str2)
print(id(str1) == id(str2))
# Izlaz
True
True
Intuitivno, operator is not
radi suprotno od operatora is
.
Operator is not
radi na bilo koja dva Pajton objekta.
I vraća False
samo ako su dva objekta identična, tj. odnose se na isti objekat u memoriji. U suprotnom, vraća True
.
U gornjim primerima koda, pokušajte da zamenite is
sa is not
i proverite rezultate.
Zaključak 👩💻
Nadam se da vam je ovaj vodič bio koristan.
Da rezimiramo, naučili ste:
- Kako da koristite operatore „jednako“ (==) i „nije jednako“ (!=) da biste proverili da li dva Pajton objekta imaju istu vrednost,
- Razliku između jednakosti i identiteta Pajton objekata, i
- Kako Pajton operatori
is
iis not
pomažu u proveri da li su dva Pajton objekta identična.
Naučite kako da izračunate vremensku razliku ili napravite igru zmije u Pajtonu ovde.
Vidimo se u sledećem tutorijalu. Do tada, srećno učenje i kodiranje! 🎉