Jak používat Python nerovné a rovné operátory

V Pythonu můžete použít operátory nerovná se a rovná se ke kontrole, zda dva objekty Pythonu mají stejnou hodnotu. Tento tutoriál vás naučí používat tyto operátory se spoustou příkladů kódu.

V tomto tutoriálu se naučíte:

  • syntaxe operátoru nerovná se (!=) a případy použití,
  • syntaxe operátoru rovná se (==) s příklady a
  • použití je a není operátorů ke kontrole identity jakýchkoli dvou objektů Pythonu.

Začněme.

Syntaxe operátora Python se nerovná

Pro libovolné dva objekty Pythonu obj1 a obj2 je obecná syntaxe pro použití operátoru nerovná se:

<obj1> != <obj2>
  • vrátí True, když hodnoty obj1 a obj2 nejsou stejné, a
  • jinak vrátí False.

Poznámka: Jak bylo uvedeno výše, obj1 a obj2 mohou být celá čísla, čísla s plovoucí desetinnou čárkou, řetězce, seznamy a tak dále.

Příklady kódu operátora Python Not Equal

V této části nakódujme několik příkladů, abychom lépe porozuměli operátoru, který se nerovná.

Použití operátoru Python Not Equal pro srovnání

Zde je náš první příklad.

num1 = 27
num2 = 3*9

num1 != num2

# Output: False

Příklady kódu můžete spustit na etechblog.cz Python IDE – přímo z vašeho prohlížeče. Nebo můžete zvolit spuštění na místním počítači.

Protože num1 = 27 a num2 se také vyhodnotí jako 27 (3*9 = 27), jsou hodnoty num1 a num2 stejné. Takže operátor != vrátí False.

Vezměme si další příklad.

V níže uvedeném kódu je num1 nastaveno na 7. A num2 je nastaveno na řetězec 7. Protože se jedná o různé datové typy, operátor nerovná se vrací True.

num1 = 7 
num2 = "7" 
num1 != num2 

# Output: True

Řetězec přenesete na celé číslo, jak je znázorněno:

num1 = 7
num2 = int("7")

num1 != num2

# Output: False

V tomto případě můžete vidět, že vrácený výsledek je False – protože num1 a num2 se nyní rovnají celému číslu 7.

  11 nejlepších mobilních testovacích nástrojů, které vám pomohou vytvářet lepší aplikace

Operátor nerovná se také můžete použít s kolekcemi Pythonu, jako jsou seznamy, n-tice a sady.

Poznámka: U kolekcí dat, jako jsou seznamy, operátor nestejný pracuje tak, že kontroluje hodnoty jednotlivých položek. Například dva seznamy seznam1 a seznam2 – každý o délce n – jsou si rovny pouze v případě, že seznam1[i] == seznam2[i] pro i v {0,1,2,3,..n-1}.

Zde je příklad:

list1 = [2,4,6,8]
list2 = [2,4,6,9]

list1 != list2

# Output: True

Ve výše uvedeném příkladu se seznam1 a seznam2 liší pouze jedním prvkem. A operátor nerovná se != vrátí True podle očekávání.

Použití operátoru Python Not Equal v podmíněných podmínkách

Operátor nerovná se často budete používat jako součást podmínek Pythonu.

Níže uvedený fragment kódu například ukazuje, jak můžete zkontrolovat, zda je číslo liché.

Číslo, které není dělitelné dvěma, je liché. A to se sníží na podmínku 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.

Můžete také použít podmíněné podmínky seznam porozumění když chcete zachovat pouze ty prvky seznamu, které splňují určitou podmínku. V níže uvedeném příkladu je odd_10 seznam všech lichých čísel menších než 10.

odd = [num for num in range(10) if num%2 != 0]
print(odd)

# Output: [1, 3, 5, 7, 9]

A tím je naše diskuse o nerovném (!=) operátoru dokončena.✅

Jak už jste možná uhodli, operátor rovno se generuje opačný efekt než operátor, který se nerovná.

  Jak používat skladbu Apple Music jako budík pro iPhone

Více se o tom dozvíte v další části.

Syntaxe operátoru Equal v Pythonu

Zde je syntaxe pro použití operátoru rovného Pythonu:

<obj1> == <obj2>  #where <obj1> and <obj2> are valid Python objects
  • vrátí True, když jsou hodnoty obj1 a obj2 stejné, a
  • jinak vrátí False.

Příklady kódu operátoru Python Equal

Operátor rovná se (==) lze použít velmi podobně jako operátor nerovno.

Pojďme kódovat následující příklady:

  • zkontrolovat, zda jsou dva řetězce stejné,
  • zkontrolovat, zda je číslo sudé, a
  • používat podmínky v porozumění seznamu

Použití operátoru Python Not Equal pro srovnání

Ve fragmentu kódu níže jsou str1 a str2 stejné, pokud jde o hodnotu. Operátor rovná se tedy (==) vrátí True.

str1 = "coding"
str2 = "coding"

str1 == str2

# Output: True

Operátor Python Equal

Použijme nyní operátor rovná se v podmíněném výrazu.

Poznámka: Číslo, které je rovnoměrně dělitelné 2, je sudé. A v kódu se to redukuje na podmínku 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.

Pojďme nyní stavět na tomto příkladu, použijte Pythonův seznam, abyste získali všechna sudá čísla menší než 10.

even_10 = [num for num in range(10) if num%2 == 0]
print(even_10)

# Output: [0, 2, 4, 6, 8]

Ve výše uvedeném příkladu

  • range(10) vrací objekt range, který lze procházet a získat všechna celá čísla od 0 do 9.
  • Podmínka num%2 == 0 platí pouze pro sudá čísla.
  • Takže sudá_10 je seznam všech sudých čísel menších než 10.

Doposud jste se naučili, jak kontrolovat rovnost pomocí operátorů nerovná se (!=) a rovná se (==).

V další části se dozvíte, jak ověřit identitu dvou objektů. Zkontrolujete, zda jsou dva objekty Pythonu totožné.

Jak používat Python je a není operátor

Pokud jste začátečník v programování v Pythonu, je možné, že jste zmateni operátory == a is. Ujasněme si to v této části.

  Jak vytvořit fotografickou koláž na iPhone

V předchozí části jsme měli příklad, kde str1 a str2 jsou rovno a operátor == vrátil True.

Nyní spusťte následující fragment kódu.

str1 = "coding" 
str2 = "coding" 

str1 is str2 

# Output: False

Můžete vidět, že str1 je str2 vrací False.

Udělejme krok zpět a pochopme, co operátor Python dělá.

Operátor is funguje na libovolných dvou objektech Pythonu.
A vrací True pouze v případě, že jsou dva objekty totožné – to znamená, že odkazují na stejný objekt v paměti.

I když se str1 rovná str2, str1 není str2, protože ukazují na dva různé objekty v paměti. A proto mají různé identity.

== a is NEJSOU stejné

V Pythonu můžete použít id() funkce k získání identity objektu.

▶ Spuštěním následující buňky s kódem získáte identity str1 a str2.

id(str1)

# Sample output: 139935398870320

id(str2)

# Sample output: 139935398871344

Jak vidíte, str1 a str2 mají různé identity. A str1 je str2 vrací False podle očekávání.

Dát to dohromady,

<obj1> is <obj2> # returns True if and only if
id(<obj1>) == id(<obj2>) # returns True

Pojďme si to rychle ověřit, jak je ukázáno:

str1 = "coding"
str2 = str1

print(str1 is str2)
print(id(str1) == id(str2))

# Output
True
True

Intuitivně operátor is not dělá opak operátoru is.

Operátor is not funguje na libovolných dvou objektech Pythonu.
A vrací False pouze v případě, že jsou tyto dva objekty totožné – to znamená, že odkazují na stejný objekt v paměti. V opačném případě vrátí hodnotu True.

Ve výše uvedených příkladech kódu zkuste nahradit is with is not a zkontrolujte výsledky.

Závěr 👩‍💻

Doufám, že vám tento návod pomohl.

Abych to shrnul, naučili jste se:

  • jak používat operátory rovná se (==) a nerovná se (!=) ke kontrole, zda dva objekty Pythonu mají stejnou hodnotu,
  • rozdíl mezi rovností a identitou objektů Pythonu a
  • jak operátory Pythonu jsou a nejsou, pomáhají při kontrole, zda jsou dva objekty Pythonu totožné.

Zde se dozvíte, jak vypočítat časový rozdíl nebo vytvořit hru hada v pythonu.

Uvidíme se všichni v dalším tutoriálu. Do té doby přeji příjemné učení a kódování!🎉