Operator ternar în Python – Ce? Cum? De ce?

În lumea programării, capacitatea de a simplifica codul este valoroasă atât pentru citirea codului, cât și pentru eficiență. Un instrument pe care îl aveți la dispoziție pentru a face acest lucru în Python este operatorul ternar.

Operatorul ternar Python (sau expresia condiționată) vă permite să evaluați declarațiile pe baza faptului că o anumită condiție este adevărată sau falsă, totul într-o singură linie de cod. Poate înlocui efectiv o declarație if-else pe mai multe linii, făcând codul mai compact.

Pe măsură ce explorăm potențialul operatorilor ternari Python , veți descoperi că aceștia pot fi foarte folositori pentru optimizarea programelor dvs. Fie că este vorba de simplificarea logicii de luare a deciziilor sau de simplificarea codului dvs., utilizarea eficientă a operatorilor ternari Python vă poate face codul mult mai ușor de citit și de înțeles.

Deci, haideți să aruncăm o privire sub capotă și să vedem despre ce este vorba!

Operator ternar în Python – Ce?  Cum?  De ce?

Cuprins

Ce este un operator ternar Python?

Operatorii Python Ternary oferă o modalitate concisă de a evalua o declarație pe baza faptului că o condiție este adevărată sau falsă, făcând codul compact și mai ușor de citit. Unii oameni le numesc și expresii condiționate sau operatori condiționali.

Sintaxa de bază

Operatorul ternar a fost introdus în Python 2.5 și are o structură simplă constând din trei operanzi:

#demonstrate python ternary operator syntax

result = value_if_true if condition else value_if_false

Această sintaxă constă din trei părți principale:

  1. Condiția : Aceasta este o expresie booleană evaluată ca fiind adevărată sau falsă, a

  2. value_if_true : Valoarea care este returnată dacă expresia booleană este adevărată.

  3. value_if_false : Valoarea care este returnată dacă expresia booleană este falsă.

Cazuri comune de utilizare

Operatorii ternari sau expresiile condiționale sunt adesea folosiți pentru a simplifica declarațiile scurte if-else din codul dvs. Iată câteva exemple pentru a ilustra modul în care puteți aplica un operator ternar Python:

Exemplul 1: Atribuirea unei valori pe baza unei condiții

 age = 25
 
category = "adult" if age >= 18 else "minor"

În acest exemplu, operatorul ternar Python atribuie valoarea „ adult ” categoriei de variabile dacă vârsta este mai mare sau egală cu 18 ani, iar „ minor ” în caz contrar.

Presupunând că am optat pentru a folosi o instrucțiune if-else în loc de un operator ternar Python, ar arăta cam așa:

age = 25

if age > 18:
   category = "Adult"
else:
   category = "Minor"

În acest caz, putem observa că utilizarea unui operator ternar face codul mult mai compact și ușor de citit.

Exemplul 2: Selectarea celui mai mic dintre două numere

a = 10
b = 15

smallest = a if a < b else b

Aici, operatorul condițional ternar vă ajută să determinați cel mai mic dintre două numere, returnând valoarea mai mică între a și b.

Exemplul 3: Atribuirea valorii minime a două variabile:

num1 = 10
num2 = 20

min_num = num1 if num1 < num2 else num2
print(min_num)

Ieșirea pentru acest exemplu va fi 10, deoarece operatorul ternar evaluează condiția și returnează valoarea mai mică.

Exemplul 4: Aflarea dacă un număr este par sau impar:

num = 5

result = "Even" if num % 2 == 0 else "Odd" 
print(result)

Ieșirea pentru acest exemplu va fi Odd , deoarece condiția este evaluată la False , iar operatorul ternar returnează rezultatul corespunzător.

Aceste exemple demonstrează modul în care un operator ternar Python vă poate face codul mai concis și mai ușor de citit. Folosind sintaxa de bază și înțelegerea cazurilor de utilizare obișnuite, puteți încorpora efectiv un operator ternar în codul dvs. Python.

În aplicațiile mai practice, îl puteți utiliza împreună cu o buclă pentru a verifica, evalua sau efectua operații asupra datelor.

Pentru o manipulare mai eficientă a datelor, puteți urmări acest videoclip despre Cum să gestionați datele lipsă în Python cu interpolare.

Cum să utilizați operatorul ternar Python

Operatorul ternar normal, sintaxa if-else este doar una dintre multele moduri prin care putem implementa un operator ternar Python. De asemenea, îl putem implementa folosind structuri de date comune, cum ar fi dicționare, tupluri și liste Python.

Să ne uităm la câteva dintre aceste metode:

Dicţionar Mapping

Puteți emula un operator ternar Python cu mapare de dicționar pentru a stoca rezultatele pentru diferite condiții. Poate fi util atunci când aveți un set finit de condiții și rezultate corespunzătoare.

Iată un exemplu folosind maparea dicționarului pentru a verifica dacă un număr este par sau impar:

#Implement python ternary operator with dictionary mapping

number = 7
result = {True: "Even", False: "Odd"}

is_even = result[number % 2 == 0]

Programul de mai sus va returna „ Impar ”, deoarece expresia booleană din paranteze este Fals.

Folosind tuplurile

Tuplurile Python sunt o structură de date ordonată, imuabilă, pe care o puteți folosi pentru a implementa operatori ternari. Practic, operatorul ternar tuplu are o sintaxă de:

(condition_is_false, condition_is_true)[condition]

Condiția evaluează fie adevărat , fie fals , care în Python sunt egale cu numerele întregi 1 și respectiv o .

Deci, tuplu returnează orice element se potrivește cu indexul rezultat. De exemplu, dacă condiția este evaluată la True , care este 1 , codul returnat condition_is true .

În caz contrar, evaluează False care este 0, iar tuplul returnează condition_is_false . Iată un exemplu mai jos:

#Implement ternary operator with tuples

c = False
result = ('a', 'b')[c]

Tuplul va stoca valoarea „ a ” în rezultatul variabilei, deoarece condiția se evaluează la Fals. Majoritatea dezvoltatorilor nu le place să folosească acest format pentru operatorii ternari, deoarece poate fi puțin confuz, ceea ce înfrânge scopul.

Funcții Lambda

Funcțiile Lambda sunt funcții anonime pe o singură linie pe care le puteți utiliza ca alternativă la operatorii ternari. Acestea vă permit să efectuați calcule simple și să returnați un rezultat bazat pe o anumită condiție.

Iată un exemplu de utilizare a unei funcții lambda pentru a găsi maximum două numere:

#implement python ternary operator with lambda functions

a, b = 10, 20
max_value = (lambda: a, lambda: b)[a < b]()

Funcția lambda returnează a dacă condiția este evaluată la True . În caz contrar, returnează b .

Ce este un operator ternar imbricat?

Un operator ternar imbricat este o expresie condiționată cu două sau mai multe expresii booleene. Puteți crea acest lucru prin înlănțuirea a două sau mai multe condiții booleene împreună pentru a verifica mai multe condiții.

Putem folosi aceste tipuri de operatori ternari pentru a modela instrucțiuni „ elif ” și blocuri imbricate if-else.

Să ne uităm la un exemplu de operator ternar Python imbricat.

age = 21

#Normal elif statement
if age< 21:
   print('Child')
elif age< 25:
   print ('young adult')
else:
   print('Adult')

#elif statement as a ternary operator
print('Child') if age < 18 else print('Young adult') if age <21 else print ('Old Person')

#Output: 'Young Adult'

Puteți adăuga paranteze la operatorul ternar Python dacă doriți să imitați o instrucțiune if-else imbricată. Cu toate acestea, aceasta nu este o practică bună, deoarece operatorul ternar poate deveni foarte lung și imposibil de citit.

În astfel de cazuri, este mai bine să utilizați un bloc standard if-else în codul dvs.

Care sunt avantajele operatorului ternar Python?

Există multe avantaje pe care le obțineți din utilizarea operatorului ternar Python în codul dvs. Unele dintre aceste avantaje includ:

Lizibilitatea codului și concizia

Utilizarea operatorului ternar Python poate face codul mai concis, permițându-vă să scrieți expresii condiționate într-o singură linie.

Acest lucru este util în special atunci când aveți de-a face cu condiții simple și directe. Codul dvs. poate fi mai lizibil și mai ușor de înțeles, deoarece reduce nevoia de mai multe linii de instrucțiuni if-else.

Considerații de performanță

Deși operatorul ternar poate duce la un cod mai compact, impactul său asupra performanței este de obicei minim. Interpretul lui Python este conceput pentru a optimiza execuția codului, ceea ce înseamnă că atât operatorul ternar, cât și instrucțiunile if-else au, în general, caracteristici de performanță similare.

Când scrieți cod Python , acordați prioritate lizibilității și mentenanței față de performanță, cu excepția cazului în care lucrați cu aplicații critice pentru performanță.

Amintiți-vă că situațiile diferite necesită abordări diferite. Uneori, folosirea operatorului ternar este benefică, în timp ce în alte cazuri, rămânerea la declarațiile tradiționale if-else poate fi mai potrivită.

Dezavantajele operatorului ternar Python

Operatorii ternari sunt grozavi pentru a simplifica codul și a le face compacte. Cu toate acestea, utilizarea lor poate avea unele dezavantaje.

Iată câteva dintre aceste dezavantaje:

Operatorii ternari imbricați pot deveni complexi

În unele cazuri, operatorul ternar poate face codul mai puțin lizibil, în special atunci când se utilizează condiții complexe sau imbricate. În aceste situații, încorporarea declarațiilor convenționale if-else poate fi mai potrivită pentru a menține claritatea codului.

Acest lucru este valabil mai ales atunci când încercați să înlocuiți o instrucțiune if-else imbricată cu un operator ternar. Are ca rezultat rar cod curat.

Fiecare operand este o expresie

Toți operanzii sau valorile returnate dintr-un operator ternar Python sunt expresii, nu instrucțiuni. Încercarea de a utiliza o instrucțiune de atribuire în sintaxa operatorului ternar va duce la o eroare de sintaxă.

Puteți consulta un exemplu în acest sens în codul de mai jos.

'Adult' if True else x = 44

După cum puteți vedea mai jos, rezultă o eroare de sintaxă. În astfel de cazuri, ar trebui să utilizați un bloc if-else în loc de un operator condiționat.

Operator ternar în Python – Ce?  Cum?  De ce?

Cele mai bune practici și sfaturi

Când utilizați operatorul ternar în Python, există câteva bune practici și sfaturi care vă ajută să scrieți cod curat, eficient și care poate fi citit.

În primul rând, asigură-te că expresia ta condițională este scurtă și concisă. Condițiile lungi și complexe ar putea face dificilă înțelegerea logicii din spatele operatorului ternar.

Dacă te confrunți cu o afecțiune complexă, ar putea fi mai bine să folosești o declarație obișnuită if-else.

#demonstrate nested ternary operator
# Good example 
result = "positive" if number >= 0 else "negative" 


# Bad example 
result = (a + b if (x > 10 and y > 20) else c + d) if (z > 30 and p > 40) else ...

În al doilea rând, evitați imbricarea mai multor operatori ternari, ceea ce poate duce la cod confuz și imposibil de citit. Ca și în cazul condițiilor complexe, luați în considerare utilizarea unei declarații if-else pentru mai multă lizibilitate.

# Good example 

x = A if condition1 else B if condition2 else C 

# Bad example 
x = A if condition1 else (B if condition2 else (C if condition3 else ...)) 

În cele din urmă, fiți atenți la cazurile de utilizare adecvate pentru operatorul ternar. Este cel mai potrivit pentru sarcini simple, cu o singură linie, în care condiția și rezultatul sunt ușor de înțeles.

Dacă codul dvs. implică o logică mai complexă, bucle sau atribuiri multiple, este mai bine să rămâneți la instrucțiunile tradiționale if-else.

Întrebări frecvente despre operatorii ternari Python

Iată câteva întrebări pe care ni le pun de obicei programatorii noi despre operatorii ternari:

Cum utilizați operatorul ternar într-o instrucțiune return în Python?

Puteți utiliza un operator ternar Python în instrucțiunea return a unei funcții. Tot ce trebuie să faceți este să îl adăugați în extrasul de returnare.

Iată un exemplu:

#program to check cheese age

def is_legal(age):
  return 'legal' if age > 18 else 'Not legal'

Este un operator ternar mai rapid decât o instrucțiune if-else în Python?

Nu, ambele au caracteristici de performanță similare. Un operator ternar și o instrucțiune if-else au ambele o complexitate de timp O(1).

Leave a Comment

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți