Ternær operatør i Python – hva? Hvordan? Hvorfor?

I programmeringsverdenen er det verdifullt å ha muligheten til å forenkle kode både for kodelesbarhet og effektivitet. Et verktøy til din disposisjon for å gjøre dette i Python er den ternære operatøren.

Den ternære Python-operatoren (eller det betingede uttrykket) lar deg evaluere utsagn basert på om en gitt betingelse er sann eller usann, alt i en enkelt kodelinje. Det kan effektivt erstatte en multiline if-else-setning som gjør koden din mer kompakt.

Når vi utforsker potensialet til ternære operatører, vil du oppdage at de kan være svært nyttige for å optimalisere programmene dine. Enten det er for å forenkle beslutningslogikk eller effektivisere koden din, kan bruk av Python ternære operatører effektivt gjøre koden din mye enklere å lese og forstå.

Så, la oss ta en titt under panseret og se hva de handler om!

Ternær operatør i Python – hva?  Hvordan?  Hvorfor?

Innholdsfortegnelse

Hva er en Python ternær operatør?

Python ternære operatører tilbyr en kortfattet måte å evaluere et utsagn basert på om en betingelse er sann eller usann, noe som gjør koden din kompakt og lettere å lese. Noen kaller dem også betingede uttrykk eller betingede operatorer.

Grunnleggende syntaks

Den ternære operatøren ble introdusert i Python 2.5 og har en enkel struktur som består av tre operander:

#demonstrate python ternary operator syntax

result = value_if_true if condition else value_if_false

Denne syntaksen består av tre hoveddeler:

  1. Betingelsen : Dette er et boolsk uttrykk evaluert som enten sant eller usant, en

  2. value_if_true : Verdien som blir returnert hvis det boolske uttrykket er sant.

  3. value_if_false : Verdien som blir returnert hvis det boolske uttrykket er usant.

Vanlige brukstilfeller

Ternære operatorer eller betingede uttrykk brukes ofte for å forenkle korte if-else-setninger i koden din. Her er noen eksempler for å illustrere hvordan du kan bruke en ternær Python-operator:

Eksempel 1: Tilordne en verdi basert på en betingelse

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

I dette eksemplet tildeler den ternære Python-operatoren verdien " voksen " til variabelkategorien hvis alderen er større enn eller lik 18, og " mindre " ellers.

Forutsatt at vi valgte å bruke en if-else-setning i stedet for en ternær Python-operator, ville det se omtrent slik ut:

age = 25

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

I dette tilfellet kan vi se at bruk av en ternær operatør gjør koden mye mer kompakt og lett å lese.

Eksempel 2: Velge det minste av to tall

a = 10
b = 15

smallest = a if a < b else b

Her hjelper den ternære betingede operatoren deg med å bestemme det minste av to tall ved å returnere den minste verdien mellom a og b.

Eksempel 3: Tilordning av minimumsverdien til to variabler:

num1 = 10
num2 = 20

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

Utdata for dette eksemplet vil være 10, ettersom den ternære operatoren evaluerer betingelsen og returnerer den minste verdien.

Eksempel 4: Finne om et tall er partall eller oddetall:

num = 5

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

Utdata for dette eksemplet vil være Odd , ettersom betingelsen evalueres til False , og den ternære operatoren returnerer det riktige resultatet.

Disse eksemplene viser hvordan en ternær Python-operator kan gjøre koden din mer kortfattet og lettere å lese. Ved å bruke den grunnleggende syntaksen og forstå vanlige brukstilfeller, kan du effektivt inkorporere en ternær operatør i Python-koden.

I mer praktiske applikasjoner kan du bruke den sammen med en loop for å sjekke, evaluere eller utføre operasjoner på data.

For mer effektiv datahåndtering kan du sjekke ut denne videoen om Hvordan håndtere manglende data i Python med interpolasjon.

Slik bruker du Python Ternary Operator

Den normale ternære operatoren if-else-syntaksen er bare en av mange måter vi kan implementere en ternær Python-operator. Vi kan også implementere det ved å bruke vanlige datastrukturer som Python-ordbøker, tuples og lister.

La oss se på noen av disse metodene:

Ordbok kartlegging

Du kan emulere en ternær Python-operator med ordbokkartlegging for å lagre resultatene for forskjellige forhold. Det kan være nyttig når du har et begrenset sett med betingelser og tilsvarende resultater.

Her er et eksempel som bruker ordboktilordning for å sjekke om et tall er partall eller oddetall:

#Implement python ternary operator with dictionary mapping

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

is_even = result[number % 2 == 0]

Programmet ovenfor vil returnere " Odd " siden det boolske uttrykket i parentes evalueres til False.

Bruker Tuples

Python-tupler er en ordnet, uforanderlig datastruktur som du kan bruke til å implementere ternære operatører. I utgangspunktet har den ternære tuppeloperatoren en syntaks på:

(condition_is_false, condition_is_true)[condition]

Betingelsen evalueres til enten True eller False som i Python er lik heltallene 1 og o henholdsvis.

Så tuppelen returnerer det elementet som samsvarer med den resulterende indeksen. For eksempel, hvis betingelsen evalueres til True som er 1 , returnerer koden condition_is true .

Ellers evalueres den til False som er 0, og tuppelen returnerer condition_is_false . Her er et eksempel nedenfor:

#Implement ternary operator with tuples

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

Tupelen vil lagre verdien ' a ' i variabelresultatet siden betingelsen evalueres til False. De fleste utviklere liker ikke å bruke dette formatet for ternære operatører, da det kan være litt forvirrende, noe som beseirer formålet.

Lambda funksjoner

Lambdafunksjoner er anonyme enkeltlinjefunksjoner som du kan bruke som et alternativ til ternære operatører. De lar deg utføre enkle beregninger og returnere et resultat basert på en gitt tilstand.

Her er et eksempel på bruk av en lambda-funksjon for å finne maksimalt to tall:

#implement python ternary operator with lambda functions

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

Lambda-funksjonen returnerer a hvis betingelsen evalueres til True . Ellers returnerer den b .

Hva er en nestet ternær operatør?

En nestet ternær operator er et betinget uttrykk med to eller flere boolske uttrykk. Du kan opprette dette ved å lenke to eller flere boolske forhold sammen for å sjekke flere forhold.

Vi kan bruke disse typene ternære operatorer til å modellere " elif "-setninger og nestede if-else-blokker.

La oss se på en ternær operatør.

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'

Du kan legge til parenteser til den ternære Python-operatoren hvis du vil etterligne en nestet if-else-setning. Dette er imidlertid ikke god praksis da den ternære operatøren kan bli veldig lang og uleselig.

I tilfeller som dette er det bedre å bruke en standard if-else-blokk i koden.

Hva er fordelene med Python Ternary Operator?

Det er mange fordeler du får ved å bruke den ternære Python-operatoren i koden din. Noen av disse fordelene inkluderer:

Kodelesbarhet og korthet

Bruk av den ternære Python-operatoren kan gjøre koden din mer kortfattet, slik at du kan skrive betingede uttrykk på en enkelt linje.

Dette er spesielt nyttig når du arbeider med enkle og greie forhold. Koden din kan være mer lesbar og lettere å forstå, ettersom den reduserer behovet for flere linjer med if-else-setninger.

Ytelseshensyn

Selv om den ternære operatøren kan føre til mer kompakt kode, er dens innvirkning på ytelsen vanligvis minimal. Pythons tolk er designet for å optimalisere kjøring av kode, noe som betyr at både den ternære operatøren og if-else-setningene generelt har lignende ytelsesegenskaper.

Når du koder, prioriter lesbarhet og vedlikehold fremfor ytelse, med mindre du jobber med ytelseskritiske applikasjoner.

Husk at ulike situasjoner krever ulike tilnærminger. Noen ganger er det fordelaktig å bruke den ternære operatoren, mens det i andre tilfeller kan være mer passende å holde seg til tradisjonelle if-else-utsagn.

Ulemper med Python Ternary Operator

Ternære operatører er flotte for å forenkle koden din og gjøre dem kompakte. Bruk av dem kan imidlertid ha noen ulemper.

Her er noen av disse ulempene:

Nestede ternære operatører kan bli komplekse

I noen tilfeller kan den ternære operatøren gjøre koden mindre lesbar, spesielt når du bruker komplekse eller nestede forhold. I disse situasjonene kan det være mer hensiktsmessig å inkludere konvensjonelle if-else-setninger for å opprettholde kodens klarhet.

Dette gjelder spesielt når du prøver å erstatte en nestet if-else-setning med en ternær operator. Det resulterer sjelden i ren kode.

Hver operand er et uttrykk

Alle operandene eller returverdiene i en ternær Python-operator er uttrykk, ikke utsagn. Å prøve å bruke en tilordningssetning inne i den ternære operatorens syntaks vil føre til en syntaksfeil.

Du kan sjekke ut et eksempel på dette i koden nedenfor.

'Adult' if True else x = 44

Som du kan se nedenfor, resulterer det i en syntaksfeil. I tilfeller som dette bør du bruke en if-else-blokk i stedet for en betinget operator.

Ternær operatør i Python – hva?  Hvordan?  Hvorfor?

Beste praksis og tips

Når du bruker den ternære operatøren i Python, er det noen beste fremgangsmåter og tips som hjelper deg med å skrive ren, effektiv og lesbar kode.

For det første, sørg for at ditt betingede uttrykk er kort og konsist. Lange og komplekse forhold kan gjøre det vanskelig å forstå logikken bak den ternære operatøren.

Hvis du opplever at du står overfor en kompleks tilstand, kan det være bedre å bruke en vanlig if-else-setning i stedet.

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

For det andre, unngå å neste flere ternære operatorer, noe som kan føre til forvirrende og uleselig kode. Som med komplekse forhold, bør du vurdere å bruke en if-else-setning for mer lesbarhet.

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

Til slutt, vær oppmerksom på de riktige brukstilfellene for den ternære operatøren. Den egner seg best for enkle enlinjede oppgaver hvor både tilstanden og resultatet er lett å forstå.

Hvis koden din involverer mer kompleks logikk, løkker eller flere tildelinger, er det bedre å holde seg til tradisjonelle if-else-setninger.

Vanlige spørsmål om Python ternære operatører

Her er noen spørsmål som nye programmerere vanligvis stiller oss om ternære operatører:

Hvordan bruker du den ternære operatoren i en retursetning i Python?

Du kan bruke en ternær Python-operator i en funksjons retursetning. Alt du trenger å gjøre er å legge det til i returoppgaven.

Her er et eksempel:

#program to check cheese age

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

Er en ternær operatør raskere enn en if-else-setning i Python?

Nei, begge har lignende ytelsesegenskaper. En ternær operator og en if-else-setning har begge en O(1)-tidskompleksitet.


PowerApps-søkefelt: Slik legger du til og tilpasser

PowerApps-søkefelt: Slik legger du til og tilpasser

Lær hvordan du oppretter et PowerApps-søkefelt fra bunnen av og tilpasser det til å matche det overordnede temaet for appen din.

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

Høst eller fang en verdi inne i et mål for å gjenbruke i et annet mål for dynamiske beregninger ved å bruke SELECTEDVALUE DAX i LuckyTemplates.

Versjonshistorikk i SharePoint-lister

Versjonshistorikk i SharePoint-lister

Oppdag hvordan versjonshistorikk i SharePoint kan hjelpe deg med å se utviklingen av bestemte data, og hvor mange endringer den har gjennomgått.

Hex-fargekodevelger for Lucky Templates-rapporter

Hex-fargekodevelger for Lucky Templates-rapporter

Her er et verktøy for å lage rapporter og grafikk, en sekskantkodevelger for farger som du kan bruke for enkelt å få fargene til LuckyTemplates-rapportene dine.

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Du kan enkelt vise en datoperiode som en slicer i rapporten ved hjelp av en periodetabell. Bruk en M-kode for å lage den dynamiske datoskjæreren i LuckyTemplates.

Proporsjons- og frekvenstabeller i Excel

Proporsjons- og frekvenstabeller i Excel

Skulle dykke ned i frekvenstabeller i Excel samt proporsjonstabeller. Se nærmere på hva de er og når du skal bruke dem.

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Lær hvordan du laster ned og installerer DAX Studio og Tabular Editor 3 og hvordan du konfigurerer dem for bruk i LuckyTemplates og i Excel.

LuckyTemplates Shape Map Visualization for romlig analyse

LuckyTemplates Shape Map Visualization for romlig analyse

Denne bloggen inneholder Shape Map-visualiseringen for romlig analyse i LuckyTemplates. Jeg viser deg hvordan du kan bruke denne visualiseringen effektivt med dens funksjoner og elementer.

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

I denne opplæringen viser jeg frem en unik idé rundt finansiell rapportering, som tildeler resultater for å forhåndsbestemme tabellmaler inne i LuckyTemplates.

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

Opprett DAX-mål i LuckyTemplates ved å bruke eksisterende mål eller formler. Dette er det jeg kaller tiltaket forgreningsteknikk.