Háromtagú operátor Pythonban – Mi? Hogyan? Miért?

A programozás világában a kód egyszerűsítésének képessége értékes mind a kód olvashatósága, mind a hatékonyság szempontjából. Az egyik rendelkezésére álló eszköz, amellyel ezt megteheti a Pythonban, a hármas operátor.

A Python háromtagú operátora (vagy feltételes kifejezés) lehetővé teszi az állítások kiértékelését az alapján, hogy egy adott feltétel igaz vagy hamis, mindezt egyetlen kódsorban. Hatékonyan helyettesítheti a többsoros if-else utasítást, így a kód kompaktabb lesz.

Miközben feltárjuk a hármas operátorokban rejlő lehetőségeket, rá fog jönni, hogy nagyon hasznosak lehetnek a programok optimalizálásához. Legyen szó a döntéshozatali logika egyszerűsítéséről vagy a kód egyszerűsítéséről, a Python hármas operátorok hatékony használatával sokkal könnyebben olvasható és érthetőbb lesz a kód.

Szóval, vessünk egy pillantást a motorháztető alá, és nézzük meg, miről is szólnak!

Háromtagú operátor Pythonban – Mi?  Hogyan?  Miért?

Tartalomjegyzék

Mi az a Python hármas operátor?

A Python Ternary operátorok tömör módot kínálnak az állítás értékelésére az alapján, hogy egy feltétel igaz vagy hamis, így a kód kompakt és könnyebben olvasható. Vannak, akik feltételes kifejezéseknek vagy feltételes operátoroknak is nevezik őket.

Alapszintaxis

A hármas operátort a Python 2.5- ben vezették be, és egyszerű szerkezete három operandusból áll:

#demonstrate python ternary operator syntax

result = value_if_true if condition else value_if_false

Ez a szintaxis három fő részből áll:

  1. A feltétel : Ez egy logikai kifejezés, amelyet igaznak vagy hamisnak értékelnek, a

  2. érték_ha_igaz : Az az érték, amelyet akkor kap vissza, ha a logikai kifejezés igaz.

  3. value_if_false : Az az érték, amelyet akkor kap vissza, ha a logikai kifejezés hamis.

Gyakori használati esetek

Terner operátorokat vagy feltételes kifejezéseket gyakran használnak a rövid if-else utasítások egyszerűsítésére a kódban. Íme néhány példa a Python hármas operátorok alkalmazásának bemutatására:

1. példa: Érték hozzárendelése feltétel alapján

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

Ebben a példában a Python háromtagú operátora a „ felnőtt ” értéket rendeli a változókategóriához, ha az életkor 18 évnél nagyobb vagy egyenlő, egyébként pedig a „ minor ” értéket .

Feltételezve, hogy egy if-else utasítást választunk a Python háromtagú operátora helyett, ez valahogy így nézne ki:

age = 25

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

Ebben az esetben láthatjuk, hogy egy háromtagú operátor használatával a kód sokkal kompaktabb és könnyebben olvasható.

2. példa: Két szám közül a legkisebb kiválasztása

a = 10
b = 15

smallest = a if a < b else b

Itt a hármas feltételes operátor segít meghatározni a két szám közül a legkisebbet az a és b közötti kisebb érték visszaadásával.

3. példa: Két változó minimális értékének hozzárendelése:

num1 = 10
num2 = 20

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

A példa kimenete 10 lesz, mivel a háromtagú operátor kiértékeli a feltételt, és a kisebb értéket adja vissza.

4. példa: Annak megállapítása, hogy egy szám páros vagy páratlan:

num = 5

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

Ennek a példának a kimenete az Odd lesz , mivel a feltétel hamis lesz , és a háromtagú operátor a megfelelő eredményt adja vissza.

Ezek a példák azt mutatják be, hogy a Python hármas operátor hogyan teheti tömörebbé és könnyebben olvashatóbbá a kódot. Az alapvető szintaxis használatával és a gyakori használati esetek megértésével hatékonyan építhet be háromtagú operátort a Python-kódba.

Gyakorlatiasabb alkalmazásokban egy hurokkal együtt használhatja adatok ellenőrzésére, értékelésére vagy műveletek végrehajtására.

A hatékonyabb adatkezelés érdekében nézze meg ezt a videót a Pythonban hiányzó adatok kezelése interpolációval című videóban.

A Python Ternary Operator használata

A normál hármas operátor if-else szintaxisa csak egy a Python hármas operátor megvalósításának sok közül. Megvalósíthatjuk olyan általános adatstruktúrák használatával is, mint a Python szótárak, sorok és listák.

Nézzünk néhány ilyen módszert:

Szótártérképezés

Emulálhat egy Python hármas operátort szótárleképezéssel, hogy tárolja a különböző feltételekhez tartozó eredményeket. Hasznos lehet, ha véges feltételkészlettel és megfelelő eredményekkel rendelkezik.

Íme egy példa a szótári leképezésre annak ellenőrzésére, hogy egy szám páros vagy páratlan:

#Implement python ternary operator with dictionary mapping

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

is_even = result[number % 2 == 0]

A fenti program az „ Odd ” értéket adja vissza , mivel a zárójelben lévő logikai kifejezés hamisra értékelődik .

Tuples használata

A Python sorok rendezett, megváltoztathatatlan adatszerkezetek, amelyek segítségével hármas operátorokat implementálhatunk. Alapvetően a tuple ternary operátornak a következő szintaxisa van:

(condition_is_false, condition_is_true)[condition]

A feltétel kiértékelése igaz vagy hamis értékre történik , amelyek Pythonban egyenlőek az 1 és o egész számokkal.

Tehát a sor azt az elemet adja vissza, amelyik megfelel az eredményül kapott indexnek. Például, ha a feltétel kiértékelése True , ami 1 , a kód visszatérési feltétele_igaz .

Ellenkező esetben False értéket ad ki, ami 0, és a tuple a condition_is_false értéket adja vissza . Íme egy példa alább:

#Implement ternary operator with tuples

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

A sor az ' a ' értéket tárolja a változó eredményében, mivel a feltétel hamis lesz. A legtöbb fejlesztő nem szereti ezt a formátumot háromtagú operátorokhoz használni, mivel ez kissé zavaró lehet, ami meghiúsítja a célt.

Lambda funkciók

A lambda függvények névtelen egysoros függvények, amelyeket a háromtagú operátorok alternatívájaként használhat. Lehetővé teszik egyszerű számítások elvégzését, és egy adott feltétel alapján eredményt adnak vissza.

Íme egy példa arra, hogyan lehet lambda függvényt használni a maximum két szám megkeresésére:

#implement python ternary operator with lambda functions

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

A lambda függvény egy értéket ad vissza , ha a feltétel kiértékelése True . Ellenkező esetben a b -t adja vissza .

Mi az a beágyazott hármas operátor?

A beágyazott háromtagú operátor két vagy több logikai kifejezést tartalmazó feltételes kifejezés. Ezt úgy hozhatja létre, hogy két vagy több logikai feltételt összeláncol több feltétel ellenőrzéséhez.

Az ilyen típusú hármas operátorokat használhatjuk „ elif ” utasítások és beágyazott if-else blokkok modellezésére.

Nézzünk egy hármas operátort.

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'

Ha beágyazott if-else utasítást szeretne utánozni, zárójeleket adhat a Python háromtagú operátorához. Ez azonban nem jó gyakorlat, mivel a háromtagú operátor nagyon hosszú és olvashatatlanná válhat.

Ilyen esetekben jobb, ha szabványos if-else blokkot használ a kódjában.

Mik a Python Ternary Operator előnyei?

Számos előnnyel jár, ha a Python hármas operátort használja a kódban. Néhány ilyen előny a következőket tartalmazza:

A kód olvashatósága és rövidsége

A Python háromtagú operátor használatával tömörebbé teheti a kódot, lehetővé téve, hogy feltételes kifejezéseket írjon egyetlen sorban.

Ez különösen akkor hasznos, ha egyszerű és egyértelmű feltételekkel foglalkozik. A kód olvashatóbb és könnyebben érthető lehet, mivel csökkenti a többsoros if-else utasítások szükségességét.

Teljesítmény szempontjai

Bár a hármas operátor kompaktabb kódhoz vezethet, a teljesítményre gyakorolt ​​hatása általában minimális. A Python értelmezőjét úgy tervezték, hogy optimalizálja a kódvégrehajtást, ami azt jelenti, hogy mind a háromtagú operátor, mind az if-else utasítások általában hasonló teljesítményjellemzőkkel rendelkeznek.

Amikor kódot használ, helyezze előnyben az olvashatóságot és a karbantarthatóságot a teljesítménnyel szemben, hacsak nem teljesítménykritikus alkalmazásokkal dolgozik.

Ne feledje, hogy a különböző helyzetek eltérő megközelítést igényelnek. Néha előnyös a háromtagú operátor használata, míg más esetekben a hagyományos if-else utasításokhoz való ragaszkodás megfelelőbb lehet.

A Python Ternary Operator hátrányai

A hármas operátorok nagyszerűek a kód egyszerűsítésére és tömörítésére. Használatuknak azonban lehetnek hátrányai.

Íme néhány ilyen hátrány:

A beágyazott hármas operátorok összetettek lehetnek

Egyes esetekben a háromtagú operátor kevésbé olvashatóvá teheti a kódot, különösen összetett vagy beágyazott feltételek használatakor. Ezekben a helyzetekben a hagyományos if-else utasítások alkalmazása megfelelőbb lehet a kód egyértelműségének megőrzéséhez.

Ez különösen igaz, ha egy beágyazott if-else utasítást háromtagú operátorra próbál lecserélni. Ritkán eredményez tiszta kódot.

Minden operandus egy kifejezés

A Python háromtagú operátorában szereplő összes operandus vagy visszatérési érték kifejezés, nem utasítás. Ha megpróbál egy hozzárendelési utasítást használni a háromtagú operátor szintaxisában, az szintaktikai hibához vezet.

Az alábbi kódban láthat egy példát erre.

'Adult' if True else x = 44

Amint az alábbiakban látható, ez szintaktikai hibát eredményez. Ilyen esetekben feltételes operátor helyett if-else blokkot kell használnia.

Háromtagú operátor Pythonban – Mi?  Hogyan?  Miért?

Bevált gyakorlatok és tippek

A Python háromtagú operátorának használatakor van néhány bevált módszer és tipp, amelyek segítenek tiszta, hatékony és olvasható kód írásában.

Először is győződjön meg arról, hogy a feltételes kifejezés rövid és tömör. A hosszú és összetett feltételek megnehezíthetik a háromtagú operátor mögötti logika megértését.

Ha összetett feltétellel találja magát szemben, jobb, ha inkább egy szokásos if-else utasítást használ.

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

Másodszor, kerülje több háromtagú operátor egymásba ágyazását, ami zavaros és olvashatatlan kódhoz vezethet. Az összetett feltételekhez hasonlóan fontolja meg az if-else utasítás használatát a jobb olvashatóság érdekében.

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

Végül ügyeljen a hármas operátor megfelelő használati eseteire. A legalkalmasabb egyszerű, egysoros feladatokhoz, ahol a feltétel és az eredmény egyaránt könnyen érthető.

Ha a kód bonyolultabb logikát, ciklusokat vagy több hozzárendelést tartalmaz, jobb, ha ragaszkodunk a hagyományos if-else utasításokhoz.

GYIK a Python hármas operátorokról

Íme néhány kérdés, amelyet az új programozók általában feltesznek nekünk a háromtagú operátorokkal kapcsolatban:

Hogyan használja a háromtagú operátort a Python visszatérési utasításában?

Használhat három Python operátort a függvény visszatérési utasításában. Mindössze annyit kell tennie, hogy hozzáadja a return utasításhoz.

Íme egy példa:

#program to check cheese age

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

Gyorsabb egy háromtagú operátor, mint egy if-else utasítás a Pythonban?

Nem, mindkettő hasonló teljesítményjellemzőkkel rendelkezik. A háromtagú operátornak és az if-else utasításnak egyaránt O(1) időbonyolultsága van.


Arány- és gyakorisági táblázatok Excelben

Arány- és gyakorisági táblázatok Excelben

Az Excel gyakorisági táblázataiban, valamint az aránytáblázatokban készültek. Nos, nézze meg, mik ezek, és mikor kell használni őket.

A DAX Studio és a Tabular Editor telepítése a LuckyTemplates alkalmazásban

A DAX Studio és a Tabular Editor telepítése a LuckyTemplates alkalmazásban

Ismerje meg, hogyan töltheti le és telepítheti a DAX Studio és a Tabular Editor 3 alkalmazást, és hogyan konfigurálhatja őket a LuckyTemplates és az Excel programban való használatra.

LuckyTemplates alakzattérkép-vizualizáció a térbeli elemzéshez

LuckyTemplates alakzattérkép-vizualizáció a térbeli elemzéshez

Ez a blog tartalmazza a Shape Map vizualizációt a LuckyTemplates térbeli elemzéséhez. Megmutatom, hogyan használhatja hatékonyan ezt a vizualizációt annak funkcióival és elemeivel.

LuckyTemplates pénzügyi jelentések: az eredmények hozzárendelése a sablonokhoz minden egyes sorban

LuckyTemplates pénzügyi jelentések: az eredmények hozzárendelése a sablonokhoz minden egyes sorban

Ebben az oktatóanyagban egy egyedülálló ötletet mutatok be a pénzügyi jelentésekkel kapcsolatban, amely az eredmények hozzárendelését jelenti a LuckyTemplates-en belüli táblázatsablonok előre meghatározásához.

DAX-mértékek a LuckyTemplates-ben mértékelágazás használatával

DAX-mértékek a LuckyTemplates-ben mértékelágazás használatával

Hozzon létre DAX-mértékeket a LuckyTemplates alkalmazásban meglévő mértékek vagy képletek használatával. Ezt nevezem mértékelágazási technikának.

A legerősebb funkcióhívás a LuckyTemplatesben

A legerősebb funkcióhívás a LuckyTemplatesben

Ebben a blogban fedezze fel a LuckyTemplates adatkészletet, a leghatékonyabb függvényhívást, amely M- és DAX-függvények ezreit juttatja a keze ügyébe.

Adatmodellezési technikák a DAX-mérések megszervezéséhez

Adatmodellezési technikák a DAX-mérések megszervezéséhez

A mai oktatóanyagban megosztok néhány adatmodellezési technikát a DAX-mérések jobb rendszerezéséhez a hatékonyabb munkafolyamat érdekében.

LuckyTemplates pénzügyi irányítópult: Teljes táblázat testreszabási tippek

LuckyTemplates pénzügyi irányítópult: Teljes táblázat testreszabási tippek

A LuckyTemplates egy nagyszerű eszköz a pénzügyi jelentésekhez. Itt található egy oktatóanyag, amely bemutatja, hogyan hozhat létre személyre szabott táblázatokat a LuckyTemplates pénzügyi irányítópultjához.

A Power Query nyelvi folyamatának bevált gyakorlatai

A Power Query nyelvi folyamatának bevált gyakorlatai

Ez az oktatóanyag megvitatja a Power Query nyelvi folyamatot, és azt, hogyan segíthet zökkenőmentes és hatékony adatjelentések létrehozásában.

LuckyTemplates egyéni ikonok | PBI vizualizációs technika

LuckyTemplates egyéni ikonok | PBI vizualizációs technika

Az egyik kedvenc technikámról fogok beszélni a LuckyTemplates egyéni ikonok körül, amely dinamikusan használja az egyéni ikonokat a LuckyTemplates vizualizációkban.