Ternaire operator in Python - wat? Hoe? Waarom?

Ternaire operator in Python - wat? Hoe? Waarom?

In de programmeerwereld is de mogelijkheid om code te vereenvoudigen waardevol voor zowel de leesbaarheid als de efficiëntie van de code. Een hulpmiddel om dit in Python te doen, is de ternaire operator.

Met de ternaire operator (of voorwaardelijke uitdrukking) van Python kunt u uitspraken evalueren op basis van het feit of een bepaalde voorwaarde waar of onwaar is, en dat alles in een enkele regel code. Het kan effectief een meerregelige if-else-instructie vervangen, waardoor uw code compacter wordt.

Terwijl we het potentieel van Python ternaire operatoren onderzoeken , zult u merken dat ze zeer nuttig kunnen zijn voor het optimaliseren van uw programma's. Of het nu gaat om het vereenvoudigen van de besluitvormingslogica of het stroomlijnen van uw code, het effectief gebruiken van Python ternaire operators kan uw code veel leesbaarder en begrijpelijker maken.

Laten we dus eens onder de motorkap kijken en zien waar het allemaal om draait!

Ternaire operator in Python - wat?  Hoe?  Waarom?

Inhoudsopgave

Wat is een Python Ternary-operator?

Python Ternary-operators bieden een beknopte manier om een ​​statement te evalueren op basis van het feit of een voorwaarde waar of onwaar is, waardoor uw code compacter en gemakkelijker leesbaar wordt. Sommige mensen noemen ze ook voorwaardelijke uitdrukkingen of voorwaardelijke operatoren.

Basis syntaxis

De ternaire operator is geïntroduceerd in Python 2.5 en heeft een eenvoudige structuur bestaande uit drie operanden:

#demonstrate python ternary operator syntax

result = value_if_true if condition else value_if_false

Deze syntaxis bestaat uit drie hoofdonderdelen:

  1. De voorwaarde : Dit is een booleaanse uitdrukking die wordt geëvalueerd als waar of onwaar, a

  2. value_if_true : De waarde die wordt geretourneerd als de booleaanse uitdrukking waar is.

  3. value_if_false : De waarde die wordt geretourneerd als de Booleaanse uitdrukking onwaar is.

Veelvoorkomende gebruiksgevallen

Ternaire operatoren of voorwaardelijke uitdrukkingen worden vaak gebruikt om korte if-else-statements in uw code te vereenvoudigen. Hier zijn een paar voorbeelden om te illustreren hoe u een Python ternaire operator kunt toepassen:

Voorbeeld 1: Een waarde toekennen op basis van een voorwaarde

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

In dit voorbeeld wijst de Python ternaire operator de waarde " adult " toe aan de variabele categorie als de leeftijd groter is dan of gelijk is aan 18, en anders " minor ".

Ervan uitgaande dat we ervoor hebben gekozen om een ​​if-else-instructie te gebruiken in plaats van een ternaire Python-operator, zou het er ongeveer zo uitzien:

age = 25

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

In dit geval kunnen we zien dat het gebruik van een ternaire operator de code veel compacter en gemakkelijker leesbaar maakt.

Voorbeeld 2: Het kleinste van twee getallen selecteren

a = 10
b = 15

smallest = a if a < b else b

Hier helpt de ternaire voorwaardelijke operator u het kleinste van twee getallen te bepalen door de kleinere waarde tussen a en b te retourneren.

Voorbeeld 3: Toekennen van de minimumwaarde van twee variabelen:

num1 = 10
num2 = 20

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

De uitvoer voor dit voorbeeld is 10, aangezien de ternaire operator de voorwaarde evalueert en de kleinere waarde retourneert.

Voorbeeld 4: bepalen of een getal even of oneven is:

num = 5

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

De uitvoer voor dit voorbeeld is Oneven , aangezien de voorwaarde resulteert in False en de ternaire operator het juiste resultaat retourneert.

Deze voorbeelden laten zien hoe een ternaire Python-operator uw code beknopter en leesbaarder kan maken. Door de basissyntaxis te gebruiken en algemene use-cases te begrijpen, kunt u effectief een ternaire operator in uw Python-code opnemen.

In meer praktische toepassingen kunt u het gebruiken in combinatie met een lus om gegevens te controleren, evalueren of bewerkingen uit te voeren.

Voor een efficiëntere gegevensverwerking kunt u deze video bekijken over het omgaan met ontbrekende gegevens in Python met interpolatie.

Hoe de Python Ternary-operator te gebruiken

De normale ternaire operator if-else-syntaxis is slechts een van de vele manieren waarop we een Python ternaire operator kunnen implementeren. We kunnen het ook implementeren door algemene datastructuren te gebruiken, zoals Python-woordenboeken, tuples en lijsten.

Laten we eens kijken naar enkele van deze methoden:

Woordenboek in kaart brengen

U kunt een ternaire Python-operator emuleren met woordenboektoewijzing om de resultaten voor verschillende voorwaarden op te slaan. Het kan handig zijn als u een eindige reeks voorwaarden en bijbehorende resultaten hebt.

Hier is een voorbeeld waarbij woordenboektoewijzing wordt gebruikt om te controleren of een getal even of oneven is:

#Implement python ternary operator with dictionary mapping

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

is_even = result[number % 2 == 0]

Het bovenstaande programma retourneert " Oneven " omdat de booleaanse uitdrukking tussen haakjes resulteert in False.

Tupels gebruiken

Python-tupels zijn een geordende, onveranderlijke gegevensstructuur die u kunt gebruiken om ternaire operatoren te implementeren. Kortom, de tuple ternaire operator heeft een syntaxis van:

(condition_is_false, condition_is_true)[condition]

De voorwaarde evalueert naar True of False , die in Python gelijk zijn aan respectievelijk de gehele getallen 1 en o .

Het tuple retourneert dus het element dat overeenkomt met de resulterende index. Als de voorwaarde bijvoorbeeld resulteert in True, wat 1 is , retourneert de code condition_is true .

Anders evalueert het naar False , wat 0 is , en retourneert het tuple condition_is_false . Hier is een voorbeeld hieronder:

#Implement ternary operator with tuples

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

De tuple slaat de waarde ' a ' op in het variabele resultaat , aangezien de voorwaarde resulteert in False. De meeste ontwikkelaars houden er niet van om dit formaat voor ternaire operatoren te gebruiken, omdat het een beetje verwarrend kan zijn, wat het doel teniet doet.

Lambda-functies

Lambda-functies zijn anonieme eenregelige functies die u kunt gebruiken als alternatief voor ternaire operatoren. Hiermee kunt u eenvoudige berekeningen uitvoeren en een resultaat retourneren op basis van een bepaalde voorwaarde.

Hier is een voorbeeld van het gebruik van een lambda-functie om het maximum van twee getallen te vinden:

#implement python ternary operator with lambda functions

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

De functie lambda retourneert a als de voorwaarde True oplevert . Anders retourneert het b .

Wat is een geneste ternaire operator?

Een geneste ternaire operator is een voorwaardelijke uitdrukking met twee of meer booleaanse uitdrukkingen. U kunt dit maken door twee of meer booleaanse voorwaarden aan elkaar te koppelen om meerdere voorwaarden te controleren.

We kunnen dit soort ternaire operatoren gebruiken om " elif "-statements en geneste if-else-blokken te modelleren.

Laten we eens kijken naar een voorbeeld van een geneste Python ternaire operator.

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'

U kunt haakjes toevoegen aan de ternaire operator van Python als u een geneste if-else-instructie wilt nabootsen. Dit is echter geen goede gewoonte, aangezien de ternaire operator erg lang en onleesbaar kan worden.

In dergelijke gevallen kun je beter een standaard if-else-blok in je code gebruiken.

Wat zijn de voordelen van de Python Ternary-operator?

Er zijn veel voordelen verbonden aan het gebruik van de ternaire Python-operator in uw code. Enkele van deze voordelen zijn:

Code leesbaarheid en beknoptheid

Het gebruik van de ternaire operator van Python kan uw code beknopter maken, waardoor u voorwaardelijke uitdrukkingen op één regel kunt schrijven.

Dit is vooral handig bij het omgaan met eenvoudige en duidelijke voorwaarden. Uw code kan beter leesbaar en begrijpelijker zijn, omdat er minder regels met if-else-instructies nodig zijn.

Prestatieoverwegingen

Hoewel de ternaire operator kan leiden tot compactere code, is de impact op de prestaties meestal minimaal. De interpreter van Python is ontworpen om de uitvoering van code te optimaliseren, wat betekent dat zowel de ternaire operator als if-else-instructies over het algemeen vergelijkbare prestatiekenmerken hebben.

Geef bij het schrijven van Python- code prioriteit aan leesbaarheid en onderhoudbaarheid boven prestaties, tenzij u werkt met prestatiekritische applicaties.

Vergeet niet dat verschillende situaties om verschillende benaderingen vragen. Soms is het nuttig om de ternaire operator te gebruiken, terwijl in andere gevallen het vasthouden aan traditionele if-else-statements geschikter kan zijn.

Nadelen van de Python Ternary Operator

Ternaire operatoren zijn geweldig om uw code te vereenvoudigen en compact te maken. Het gebruik ervan kan echter enkele nadelen hebben.

Hier zijn enkele van deze nadelen:

Geneste ternaire operatoren kunnen ingewikkeld worden

In sommige gevallen kan de ternaire operator de code minder leesbaar maken, met name bij het gebruik van complexe of geneste voorwaarden. In deze situaties kan het opnemen van conventionele if-else-instructies geschikter zijn om de duidelijkheid van de code te behouden.

Dit is met name het geval wanneer u een geneste if-else-instructie probeert te vervangen door een ternaire operator. Het resulteert zelden in schone code.

Elke operand is een uitdrukking

Alle operanden of retourwaarden in een ternaire Python-operator zijn uitdrukkingen, geen uitspraken. Als u probeert een toewijzingsinstructie te gebruiken binnen de syntaxis van de ternaire operator, leidt dit tot een syntaxisfout.

Je kunt een voorbeeld hiervan bekijken in de onderstaande code.

'Adult' if True else x = 44

Zoals u hieronder kunt zien, resulteert dit in een syntaxisfout. In dergelijke gevallen moet u een if-else-blok gebruiken in plaats van een voorwaardelijke operator.

Ternaire operator in Python - wat?  Hoe?  Waarom?

Beste praktijken en tips

Bij het gebruik van de ternaire operator in Python zijn er enkele best practices en tips om u te helpen schone, efficiënte en leesbare code te schrijven.

Zorg er ten eerste voor dat uw voorwaardelijke uitdrukking kort en bondig is. Lange en complexe voorwaarden kunnen het moeilijk maken om de logica achter de ternaire operator te begrijpen.

Als u merkt dat u met een complexe aandoening wordt geconfronteerd, is het misschien beter om in plaats daarvan een normale if-els-instructie te gebruiken.

#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 ...

Ten tweede, vermijd het nesten van meerdere ternaire operatoren, wat kan leiden tot verwarrende en onleesbare code. Overweeg, net als bij complexe voorwaarden, een if-else-instructie te gebruiken voor meer leesbaarheid.

# 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 ...)) 

Houd ten slotte rekening met de juiste use-cases voor de ternaire operator. Het is het meest geschikt voor eenvoudige opdrachten met één regel waarbij zowel de voorwaarde als de uitkomst gemakkelijk te begrijpen zijn.

Als uw code complexere logica, lussen of meerdere toewijzingen bevat, kunt u beter vasthouden aan traditionele if-else-instructies.

Veelgestelde vragen over Python Ternary Operators

Hier zijn enkele vragen die nieuwe programmeurs ons gewoonlijk stellen over ternaire operatoren:

Hoe gebruik je de ternaire operator in een return statement in Python?

U kunt een ternaire Python-operator gebruiken in de return-instructie van een functie. Het enige wat u hoeft te doen is deze toe te voegen aan de aangifte.

Hier is een voorbeeld:

#program to check cheese age

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

Is een ternaire operator sneller dan een if-else-statement in Python?

Nee, ze hebben allebei vergelijkbare prestatiekenmerken. Een ternaire operator en een if-else-opdracht hebben beide een O(1)-tijdscomplexiteit.


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten