logo

Operator ternar în Python

În Piton , Operatorul ternar determină dacă o condiție este adevărată sau falsă și apoi returnează valoarea corespunzătoare ca rezultat. Operatorul ternar este util în cazurile în care trebuie să atribuim o valoare unei variabile pe baza unei condiții simple și dorim să ne păstrăm codul mai concis - totul într-o singură linie de cod.

Este convenabil atunci când dorim să evităm să scriem mai multe rânduri pentru o condiție simplă dacă altfel. Ca și în simplu dacă-altfel, prima opțiune, the valoare adevarata va fi executat atunci când condiția furnizată în expresie este True. Dacă condiția returnează False, atunci false_value va fi executat.



  Syntax:     true_value   if   condition   else   false_value>

Operatorul ternar poate fi utilizat în diferite moduri. Să vedem câteva exemple diferite de utilizare a operatorilor ternari în Python:

arraylist sortată

Cuprins

Python Ternar Dacă Altceva

Cel mai simplu mod de a folosi un operator ternar Python este atunci când avem un simplu dacă altfel condiție , adică oricare dintre cele două condiții este adevărată, iar cealaltă este falsă.



Exemplu: În acest cod vom compara și găsi numărul minim din cele două numere date folosind Operatorii Ternari în Python și stocând rezultatul într-un nume de variabilă ‘min’. Dacă ' A „este minim, valoarea „ A „va fi tipărit, altfel valoarea „ b ‘ va fi tipărit.

Piton
# Program to demonstrate ternary operator a = 10 b = 20 # python ternary operator min = 'a is minimum' if a < b else 'b is minimum' print(min)>

Ieșire:

a is minimum>

Operator ternar în Imbricat If else

Operatorul ternar poate fi folosit și în Instrucțiunea if-else imbricată Python . sintaxa pentru același lucru este următoarea:



Syntax: true_value if condition1 else (true_value if condition2 else false_value)>

Exemplu: În acest exemplu, folosim un imbricat if-else pentru a demonstra operatorul ternar. Dacă ' A' și ' b „sunt egali, atunci vom tipări „a și b sunt egali”, iar dacă „a” este mai mare decât „b”, atunci vom tipări „a este mai mare decât b” în caz contrar „b este mai mare decât a”.

Piton
# Python program to demonstrate nested ternary operator a = 10 b = 20 print('Both are equal' if a == b else 'a is greater' if a>b altfel 'b este mai mare')>

Ieșire:

b is greater>

Operator ternar folosind Python Tuple

Operatorul ternar poate fi scris și folosind Tupluri Python . În acest caz, declarăm valorile False și True în interiorul unui tuplu la indexul 0 și respectiv 1. Pe baza condiției, dacă rezultatul este Fals, adică 0, valoarea la indicele 0 este executată. Dacă condiția are ca rezultat True, se execută valoarea de la indicele 1 al tuplului.

Syntax: (false_value, true_value) [condition]>

Exemplu: În acest exemplu, vom compara și tipări valoarea minimă, unde valorile care urmează să fie executate sunt declarate în interiorul tuplului.

Piton
# Program to demonstrate ternary operator a = 10 b = 20 # python ternary operator usinf tuple print(('b is minimum', 'a is minimum') [a < b])>

Ieșire:

a is minimum>

Ternary Operator folosind dicționar Python

Operatorul ternar Python poate fi scris și folosind Dicționar Python . În acest caz, folosim cuvinte cheie True și False ca chei de dicționar și le oferim o valoare care trebuie executată pe baza rezultatului condiției.

  Syntax: (True: true_value, False: false_value) [condition]>

Exemplu: În acest exemplu, folosim Dicționar pentru a demonstra operatorul ternar, unde am dat valori True și False cheilor de dicționar, care vor fi executate pe baza rezultatului condiției.

aliniați imaginea cu css
Piton
# Python program to demonstrate ternary operator a, b = 10, 20 print({True: 'a is minimum', False: 'b is minimum'} [a < b])>

Ieșire:

a is minimum>

Operator ternar care utilizează Python Lambda

În Python, funcții lambda sunt folosite atunci când avem o singură expresie de evaluat. Prin urmare, utilizarea operatorului teranery cu lambda îl face destul de simplu și ușor. Funcționează exact ca tuplu. Adică declarăm valorile Fals și True la indexul 0 și, respectiv, 1.

Syntax: (lambda: false_value, lambda: true_value) [condition] ()>

Exemplu: În acest exemplu, folosim Lambda pentru a demonstra operatorul ternar. Folosim tuplu pentru selectarea unui articol și dacă [a

Piton
# Python program to demonstrate ternary operator a = 10 b = 20 print((lambda: 'b is minimum', lambda: 'a is minimum')[a < b]())>

Ieșire:

a is minimum>

Operator ternar cu funcție de imprimare

Operatorul ternar poate fi, de asemenea, utilizat direct cu Declarație de imprimare Python . Sintaxa sa este următoarea:

Syntax: print(true_value) if (condition) print(false_value)>

Exemplu: În acest exemplu, găsim numărul minim dintre două numere folosind operatorul ternar Python cu instrucțiunea print.

Piton
a = 10 b = 20 # ternary operator with print statement print(a,'is minimum') if (a < b) else print(b,'is minimum')>

Ieșire:

10 is minimum>

Limitări ale operatorului ternar Python

Operatorul ternar Python este folosit pentru a scrie declarații condiționale concise, dar are și unele limitări.

  • Lizibilitate: T Operatorul ernar poate face expresiile condiționale simple mai concise, de asemenea, poate reduce lizibilitatea codului dvs., mai ales dacă condiția și expresiile sunt complexe.
  • Potenţial de eroare : plasarea incorectă a parantezelor, lipsa punctelor două puncte sau ordinea incorectă a expresiilor pot duce la erori de sintaxă care ar putea fi mai greu de identificat.
  • Depanare : La depanare, ar putea fi mai greu să inspectați valorile variabilelor implicate într-o expresie ternară complexă.
  • Întreținere și extensibilitate : Expresiile ternare complexe pot deveni mai greu de menținut și extins mai ales atunci când baza de cod crește.
  • Nu pot folosi instrucțiunile de atribuire: Fiecare operand al operatorului ternar Python este an expresie , nu o declarație, asta înseamnă că nu putem folosi instrucțiuni de atribuire în niciuna dintre ele. În caz contrar, programul va arunca o eroare.

Exemplu:

Piton
3 if True else x=6>

Ieșire:

File 'Solution.py', line 1  3 if True else x=6  ^ SyntaxError: can't assign to conditional expression>