Tabulky proporcí a četností v Excelu
Chtěli jsme se ponořit do tabulek četností v Excelu a také do tabulek proporcí. Podívejte se, co to je a kdy je použít.
Ve světě programování je schopnost zjednodušit kód cenná jak pro čitelnost kódu, tak pro efektivitu. Jedním z nástrojů, který máte v Pythonu k dispozici, je ternární operátor.
Pythonský ternární operátor (nebo podmíněný výraz) umožňuje vyhodnotit příkazy na základě toho, zda je daná podmínka pravdivá nebo nepravdivá, to vše na jediném řádku kódu. Dokáže efektivně nahradit víceřádkový příkaz if-else, díky čemuž je váš kód kompaktnější.
Když prozkoumáme potenciál ternárních operátorů, zjistíte, že mohou být velmi užitečné pro optimalizaci vašich programů. Ať už jde o zjednodušení logiky rozhodování nebo zefektivnění kódu, efektivní používání ternárních operátorů Pythonu může váš kód mnohem snáze přečíst a pochopit.
Pojďme se tedy podívat pod pokličku a podívat se, o čem jsou!
Obsah
Co je ternární operátor Pythonu?
Ternární operátory Pythonu nabízejí stručný způsob, jak vyhodnotit prohlášení na základě toho, zda je podmínka pravdivá nebo nepravdivá, takže váš kód je kompaktní a snáze čitelný. Někteří lidé je také nazývají podmíněné výrazy nebo podmíněné operátory.
Základní syntaxe
Ternární operátor byl zaveden v Pythonu 2.5 a má jednoduchou strukturu sestávající ze tří operandů:
#demonstrate python ternary operator syntax
result = value_if_true if condition else value_if_false
Tato syntaxe se skládá ze tří hlavních částí:
Podmínka : Toto je booleovský výraz vyhodnocený jako pravdivý nebo nepravdivý, a
value_if_true : Hodnota, která se vrátí, pokud je logický výraz pravdivý.
value_if_false : Hodnota, která bude vrácena, pokud je booleovský výraz nepravdivý.
Běžné případy použití
Ternární operátory nebo podmíněné výrazy se často používají ke zjednodušení krátkých příkazů if-else ve vašem kódu. Zde je několik příkladů, které ilustrují, jak můžete použít ternární operátor Pythonu:
Příklad 1: Přiřazení hodnoty na základě podmínky
age = 25
category = "adult" if age >= 18 else "minor"
V tomto příkladu ternární operátor Pythonu přiřadí kategorii proměnné hodnotu „ dospělý “ , pokud je věk větší nebo roven 18, a jinak „ nezletilý “.
Za předpokladu, že jsme se rozhodli použít příkaz if-else místo ternárního operátoru Pythonu, vypadalo by to asi takto:
age = 25
if age > 18:
category = "Adult"
else:
category = "Minor"
V tomto případě můžeme vidět, že pomocí ternárního operátoru je kód mnohem kompaktnější a snáze čitelný.
Příklad 2: Výběr nejmenšího ze dvou čísel
a = 10
b = 15
smallest = a if a < b else b
Zde vám ternární podmíněný operátor pomůže určit nejmenší ze dvou čísel tím, že vrátí menší hodnotu mezi a a b.
Příklad 3: Přiřazení minimální hodnoty dvěma proměnným:
num1 = 10
num2 = 20
min_num = num1 if num1 < num2 else num2
print(min_num)
Výstup pro tento příklad bude 10, protože ternární operátor vyhodnotí podmínku a vrátí menší hodnotu.
Příklad 4: Zjištění, zda je číslo sudé nebo liché:
num = 5
result = "Even" if num % 2 == 0 else "Odd"
print(result)
Výstup pro tento příklad bude Odd , protože podmínka se vyhodnotí jako False a ternární operátor vrátí příslušný výsledek.
Tyto příklady ukazují, jak může ternární operátor Pythonu učinit váš kód stručnějším a snadněji čitelným. Pomocí základní syntaxe a porozumění běžným případům použití můžete efektivně začlenit ternární operátor do kódu Pythonu.
V praktičtějších aplikacích jej můžete použít ve spojení se smyčkou pro kontrolu, vyhodnocování nebo provádění operací s daty.
Pro efektivnější manipulaci s daty se můžete podívat na toto video o tom, jak zacházet s chybějícími daty v Pythonu pomocí interpolace.
Jak používat Python Ternary Operator
Normální syntaxe ternárního operátoru if-else je jen jedním z mnoha způsobů, jak můžeme implementovat ternární operátor Pythonu. Můžeme to také implementovat pomocí běžných datových struktur, jako jsou slovníky Pythonu, n-tice a seznamy.
Podívejme se na některé z těchto metod:
Slovníkové mapování
Můžete emulovat ternární operátor Pythonu pomocí slovníkového mapování a uložit výsledky pro různé podmínky. To může být užitečné, když máte konečnou množinu podmínek a odpovídajících výsledků.
Zde je příklad použití slovníkového mapování ke kontrole, zda je číslo sudé nebo liché:
#Implement python ternary operator with dictionary mapping
number = 7
result = {True: "Even", False: "Odd"}
is_even = result[number % 2 == 0]
Výše uvedený program vrátí „ Odd “, protože booleovský výraz v závorkách je vyhodnocen jako False.
Použití n-tic
Pythonské n-tice jsou uspořádaná, neměnná datová struktura, kterou můžete použít k implementaci ternárních operátorů. V zásadě má n-ticový ternární operátor syntaxi:
(condition_is_false, condition_is_true)[condition]
Podmínka je vyhodnocena jako True nebo False , které se v Pythonu rovnají celým číslům 1 a o .
N-tice tedy vrátí libovolný prvek, který odpovídá výslednému indexu. Pokud se například podmínka vyhodnotí jako True , což je 1 , vrátí kód podmínka_je true .
Jinak se vyhodnotí jako False , což je 0, a n-tice vrátí condition_is_false . Níže je uveden příklad:
#Implement ternary operator with tuples
c = False
result = ('a', 'b')[c]
N-tice uloží hodnotu ' a ' do proměnné result , protože podmínka je vyhodnocena jako False. Většina vývojářů nerada používá tento formát pro ternární operátory, protože může být trochu matoucí, což maří účel.
Funkce lambda
Lambda funkce jsou anonymní jednořádkové funkce, které můžete použít jako alternativu k ternárním operátorům. Umožňují provádět jednoduché výpočty a vrátit výsledek na základě dané podmínky.
Zde je příklad použití funkce lambda k nalezení maxima dvou čísel:
#implement python ternary operator with lambda functions
a, b = 10, 20
max_value = (lambda: a, lambda: b)[a < b]()
Funkce lambda vrátí a, pokud se podmínka vyhodnotí jako True . V opačném případě vrátí b .
Co je vnořený ternární operátor?
Vnořený ternární operátor je podmíněný výraz se dvěma nebo více booleovskými výrazy. Můžete to vytvořit zřetězením dvou nebo více booleovských podmínek dohromady a zkontrolovat více podmínek.
Tyto typy ternárních operátorů můžeme použít k modelování příkazů „ elif “ a vnořených bloků if-else.
Podívejme se na ternární operátor.
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'
Chcete-li napodobit vnořený příkaz if-else, můžete k ternárnímu operátoru Pythonu přidat závorky. To však není dobrá praxe, protože ternární operátor může být velmi dlouhý a nečitelný.
V případech, jako je tento, je lepší použít v kódu standardní blok if-else.
Jaké jsou výhody Python Ternary Operator?
Použitím ternárního operátoru Pythonu v kódu získáte mnoho výhod. Některé z těchto výhod zahrnují:
Čitelnost a stručnost kódu
Použití ternárního operátoru Pythonu může učinit váš kód stručnějším, což vám umožní psát podmíněné výrazy na jednom řádku.
To je užitečné zejména při řešení jednoduchých a přímočarých podmínek. Váš kód může být čitelnější a srozumitelnější, protože snižuje potřebu více řádků příkazů if-else.
Úvahy o výkonu
Ačkoli ternární operátor může vést ke kompaktnějšímu kódu, jeho dopad na výkon je obvykle minimální. Interpret Pythonu je navržen tak, aby optimalizoval provádění kódu, což znamená, že jak ternární operátor, tak příkazy if-else mají obecně podobné výkonnostní charakteristiky.
Když kódujete, upřednostňujte čitelnost a udržovatelnost před výkonem, pokud nepracujete s aplikacemi kritickými pro výkon.
Pamatujte, že různé situace vyžadují různé přístupy. Někdy je výhodné použít ternární operátor, zatímco v jiných případech může být vhodnější držet se tradičních příkazů if-else.
Nevýhody ternárního operátora Pythonu
Ternární operátory jsou skvělé pro zjednodušení kódu a jeho kompaktnost. Jejich použití však může mít určité nevýhody.
Zde jsou některé z těchto nevýhod:
Vnořené ternární operátory mohou být složité
V některých případech může ternární operátor způsobit, že kód bude méně čitelný, zejména při použití složitých nebo vnořených podmínek. V těchto situacích může být pro zachování srozumitelnosti kódu vhodnější začlenění konvenčních příkazů if-else.
To platí zejména tehdy, když se pokoušíte nahradit vnořený příkaz if-else ternárním operátorem. Málokdy vede k čistému kódu.
Každý operand je výraz
Všechny operandy nebo návratové hodnoty v ternárním operátoru Pythonu jsou výrazy, nikoli příkazy. Pokus o použití příkazu přiřazení uvnitř syntaxe ternárního operátoru povede k chybě syntaxe.
Můžete se podívat na příklad v níže uvedeném kódu.
'Adult' if True else x = 44
Jak vidíte níže, výsledkem je chyba syntaxe. V případech, jako je tento, byste měli místo podmíněného operátoru použít blok if-else.
Doporučené postupy a tipy
Při používání ternárního operátoru v Pythonu existuje několik osvědčených postupů a tipů, které vám pomohou napsat čistý, efektivní a čitelný kód.
Nejprve se ujistěte, že váš podmíněný výraz je krátký a výstižný. Dlouhé a složité podmínky mohou ztěžovat pochopení logiky ternárního operátoru.
Pokud se ocitnete před složitým stavem, může být lepší místo toho použít běžný příkaz 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 ...
Za druhé, vyhněte se vnořování více ternárních operátorů, což může vést k matoucímu a nečitelnému kódu. Stejně jako u složitých podmínek zvažte použití příkazu if-else pro lepší čitelnost.
# 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 ...))
Nakonec mějte na paměti vhodné případy použití pro ternární operátor. Je nejvhodnější pro jednoduchá jednořádková zadání, kde jsou podmínky i výsledek snadno srozumitelné.
Pokud váš kód zahrnuje složitější logiku, smyčky nebo vícenásobné přiřazení, je lepší držet se tradičních příkazů if-else.
Nejčastější dotazy týkající se ternárních operátorů Pythonu
Zde je několik otázek týkajících se ternárních operátorů, které nám obvykle kladou noví programátoři:
Jak používáte ternární operátor v příkazu return v Pythonu?
V příkazu return funkce můžete použít ternární operátor Pythonu. Jediné, co musíte udělat, je přidat jej do příkazu return.
Zde je příklad:
#program to check cheese age
def is_legal(age):
return 'legal' if age > 18 else 'Not legal'
Je ternární operátor rychlejší než příkaz if-else v Pythonu?
Ne, oba mají podobné výkonnostní charakteristiky. Ternární operátor a příkaz if-else mají časovou složitost O(1).
Chtěli jsme se ponořit do tabulek četností v Excelu a také do tabulek proporcí. Podívejte se, co to je a kdy je použít.
Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.
Tento blog obsahuje vizualizáciu Shape Map pre priestorovú analýzu v LuckyTemplates. Ukážem vám, ako môžete efektívne využiť túto vizualizáciu s jej funkciami a prvkami.
V tomto návode predstavujem jedinečný nápad týkajúci sa finančného výkazníctva, ktorý spočíva v prideľovaní výsledkov na vopred určené šablóny tabuliek v rámci LuckyTemplates.
Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.
V tomto blogu preskúmajte množinu údajov LuckyTemplates, najvýkonnejšie volanie funkcií, ktoré vám prináša tisíce funkcií M a DAX na dosah ruky.
V dnešnom návode sa podelím o niekoľko techník modelovania údajov o tom, ako lepšie usporiadať vaše merania DAX pre efektívnejší pracovný tok.
LuckyTemplates je skvelý nástroj pre finančné výkazníctvo. Tu je návod, ako vytvoriť prispôsobené tabuľky pre váš finančný dashboard LuckyTemplates.
V tomto návode sa bude diskutovať o toku jazyka Power Query a o tom, ako môže pomôcť vytvoriť hladkú a efektívnu zostavu údajov.
Budu diskutovat o jedné z mých oblíbených technik kolem vlastních ikon LuckyTemplates, která používá vlastní ikony dynamickým způsobem ve vizuálech LuckyTemplates.