Како користити Питхон Нот Екуал и Екуал операторе

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 je True 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 i is 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! 🎉