Ternärer Operator in Python – Was? Wie? Warum?

Ternärer Operator in Python – Was? Wie? Warum?

In der Welt der Programmierung ist die Fähigkeit, Code zu vereinfachen, sowohl für die Lesbarkeit als auch für die Effizienz des Codes wertvoll. Ein Werkzeug, das Ihnen dafür in Python zur Verfügung steht, ist der ternäre Operator.

Mit dem ternären Operator (oder Bedingungsausdruck) von Python können Sie Anweisungen basierend darauf auswerten, ob eine bestimmte Bedingung wahr oder falsch ist, und das alles in einer einzigen Codezeile. Es kann eine mehrzeilige if-else-Anweisung effektiv ersetzen und Ihren Code kompakter machen.

Wenn wir das Potenzial ternärer Python- Operatoren untersuchen , werden Sie feststellen, dass sie für die Optimierung Ihrer Programme sehr nützlich sein können. Unabhängig davon, ob Sie die Entscheidungslogik vereinfachen oder Ihren Code rationalisieren möchten, kann die effektive Verwendung ternärer Python- Operatoren dazu führen, dass Ihr Code viel einfacher zu lesen und zu verstehen ist.

Werfen wir also einen Blick unter die Haube und sehen, worum es geht!

Ternärer Operator in Python – Was?  Wie?  Warum?

Inhaltsverzeichnis

Was ist ein ternärer Python-Operator?

Ternäre Python-Operatoren bieten eine präzise Möglichkeit, eine Anweisung basierend darauf auszuwerten, ob eine Bedingung wahr oder falsch ist, wodurch Ihr Code kompakter und leichter lesbar wird. Manche Leute nennen sie auch bedingte Ausdrücke oder bedingte Operatoren.

Grundlegende Syntax

Der ternäre Operator wurde in Python 2.5 eingeführt und hat eine einfache Struktur bestehend aus drei Operanden:

#demonstrate python ternary operator syntax

result = value_if_true if condition else value_if_false

Diese Syntax besteht aus drei Hauptteilen:

  1. Die Bedingung : Dies ist ein boolescher Ausdruck, der entweder als wahr oder falsch ausgewertet wird, a

  2. value_if_true : Der Wert, der zurückgegeben wird, wenn der boolesche Ausdruck wahr ist.

  3. value_if_false : Der Wert, der zurückgegeben wird, wenn der boolesche Ausdruck falsch ist.

Häufige Anwendungsfälle

Ternäre Operatoren oder bedingte Ausdrücke werden häufig verwendet, um kurze if-else-Anweisungen in Ihrem Code zu vereinfachen. Hier sind einige Beispiele, um zu veranschaulichen, wie Sie einen ternären Python-Operator anwenden können:

Beispiel 1: Zuweisen eines Werts basierend auf einer Bedingung

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

In diesem Beispiel weist der ternäre Python-Operator der Variablenkategorie den Wert „Erwachsener“ zu , wenn das Alter größer oder gleich 18 ist, andernfalls „ Minderjähriger “.

Angenommen, wir würden uns für die Verwendung einer if-else-Anweisung anstelle eines ternären Python-Operators entscheiden, würde das etwa so aussehen:

age = 25

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

In diesem Fall können wir sehen, dass die Verwendung eines ternären Operators den Code wesentlich kompakter und leichter lesbar macht.

Beispiel 2: Auswahl der kleinsten von zwei Zahlen

a = 10
b = 15

smallest = a if a < b else b

Hier hilft Ihnen der ternäre bedingte Operator, die kleinste von zwei Zahlen zu bestimmen, indem er den kleineren Wert zwischen a und b zurückgibt.

Beispiel 3: Zuweisung des Mindestwerts zweier Variablen:

num1 = 10
num2 = 20

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

Die Ausgabe für dieses Beispiel ist 10, da der ternäre Operator die Bedingung auswertet und den kleineren Wert zurückgibt.

Beispiel 4: Finden Sie heraus, ob eine Zahl gerade oder ungerade ist:

num = 5

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

Die Ausgabe für dieses Beispiel ist Odd , da die Bedingung als False ausgewertet wird und der ternäre Operator das entsprechende Ergebnis zurückgibt.

Diese Beispiele zeigen, wie ein ternärer Python-Operator Ihren Code prägnanter und leichter lesbar machen kann. Durch die Verwendung der grundlegenden Syntax und das Verständnis gängiger Anwendungsfälle können Sie einen ternären Operator effektiv in Ihren Python-Code integrieren.

In praktischeren Anwendungen können Sie es in Verbindung mit einer Schleife verwenden, um Daten zu überprüfen, auszuwerten oder Operationen an ihnen durchzuführen.

Für eine effizientere Datenverarbeitung können Sie sich dieses Video zum Umgang mit fehlenden Daten in Python mit Interpolation ansehen.

So verwenden Sie den ternären Python-Operator

Die normale if-else-Syntax des ternären Operators ist nur eine von vielen Möglichkeiten, wie wir einen ternären Python-Operator implementieren können. Wir können es auch implementieren, indem wir gängige Datenstrukturen wie Python-Wörterbücher, Tupel und Listen verwenden.

Schauen wir uns einige dieser Methoden an:

Wörterbuchzuordnung

Sie können einen ternären Python-Operator mit Wörterbuchzuordnung emulieren, um die Ergebnisse für verschiedene Bedingungen zu speichern. Dies kann nützlich sein, wenn Sie über eine endliche Menge von Bedingungen und entsprechende Ergebnisse verfügen.

Hier ist ein Beispiel, bei dem die Wörterbuchzuordnung verwendet wird, um zu prüfen, ob eine Zahl gerade oder ungerade ist:

#Implement python ternary operator with dictionary mapping

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

is_even = result[number % 2 == 0]

Das obige Programm gibt „ Odd “ zurück, da der boolesche Ausdruck in den Klammern „ False“ ergibt.

Verwenden von Tupeln

Python-Tupel sind eine geordnete, unveränderliche Datenstruktur, die Sie zur Implementierung ternärer Operatoren verwenden können. Grundsätzlich hat der ternäre Tupeloperator die folgende Syntax:

(condition_is_false, condition_is_true)[condition]

Die Bedingung ergibt entweder „True“ oder „False“ , was in Python den Ganzzahlen 1 bzw. o entspricht.

Das Tupel gibt also das Element zurück, das mit dem resultierenden Index übereinstimmt. Wenn die Bedingung beispielsweise „True“ ergibt, was 1 ist , gibt der Code „condition_is true“ zurück .

Andernfalls ergibt die Auswertung „False“ , was 0 ist, und das Tupel gibt „condition_is_false“ zurück . Hier ist ein Beispiel:

#Implement ternary operator with tuples

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

Das Tupel speichert den Wert „ a “ in der Variablen result , da die Bedingung „ False“ ergibt. Die meisten Entwickler verwenden dieses Format nicht gerne für ternäre Operatoren, da es etwas verwirrend sein kann, was seinen Zweck zunichte macht.

Lambda-Funktionen

Lambda-Funktionen sind anonyme einzeilige Funktionen, die Sie als Alternative zu ternären Operatoren verwenden können. Sie ermöglichen Ihnen, einfache Berechnungen durchzuführen und ein Ergebnis basierend auf einer bestimmten Bedingung zurückzugeben.

Hier ist ein Beispiel für die Verwendung einer Lambda-Funktion zum Ermitteln des Maximums von zwei Zahlen:

#implement python ternary operator with lambda functions

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

Die Lambda-Funktion gibt a zurück, wenn die Bedingung True ergibt . Andernfalls wird b zurückgegeben .

Was ist ein verschachtelter ternärer Operator?

Ein verschachtelter ternärer Operator ist ein bedingter Ausdruck mit zwei oder mehr booleschen Ausdrücken. Sie können dies erreichen, indem Sie zwei oder mehr boolesche Bedingungen miteinander verketten, um mehrere Bedingungen zu überprüfen.

Wir können diese Art von ternären Operatoren verwenden, um „ elif “-Anweisungen und verschachtelte if-else-Blöcke zu modellieren.

Schauen wir uns ein Beispiel eines verschachtelten ternären Python-Operators an.

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'

Sie können dem ternären Python-Operator Klammern hinzufügen, wenn Sie eine verschachtelte if-else-Anweisung nachahmen möchten. Dies ist jedoch keine gute Vorgehensweise, da der ternäre Operator sehr lang und unleserlich werden kann.

In solchen Fällen ist es besser, einen standardmäßigen if-else-Block in Ihrem Code zu verwenden.

Was sind die Vorteile des ternären Python-Operators?

Die Verwendung des ternären Python-Operators in Ihrem Code bietet viele Vorteile. Zu diesen Vorteilen gehören:

Lesbarkeit und Kürze des Codes

Durch die Verwendung des ternären Python-Operators können Sie Ihren Code prägnanter gestalten, sodass Sie bedingte Ausdrücke in einer einzigen Zeile schreiben können.

Dies ist besonders hilfreich, wenn es sich um einfache und unkomplizierte Bedingungen handelt. Ihr Code kann besser lesbar und verständlicher sein, da weniger Zeilen mit if-else-Anweisungen erforderlich sind.

Leistungsüberlegungen

Obwohl der ternäre Operator zu kompakterem Code führen kann, sind seine Auswirkungen auf die Leistung normalerweise minimal. Der Interpreter von Python ist darauf ausgelegt, die Codeausführung zu optimieren, was bedeutet, dass sowohl der ternäre Operator als auch die if-else-Anweisungen im Allgemeinen ähnliche Leistungsmerkmale aufweisen.

Geben Sie beim Schreiben von Python- Code der Lesbarkeit und Wartbarkeit Vorrang vor der Leistung, es sei denn, Sie arbeiten mit leistungskritischen Anwendungen.

Denken Sie daran, dass unterschiedliche Situationen unterschiedliche Ansätze erfordern. Manchmal ist die Verwendung des ternären Operators von Vorteil, während es in anderen Fällen möglicherweise besser ist, bei herkömmlichen if-else-Anweisungen zu bleiben.

Nachteile des ternären Python-Operators

Ternäre Operatoren eignen sich hervorragend, um Ihren Code zu vereinfachen und kompakt zu machen. Allerdings kann ihre Verwendung einige Nachteile mit sich bringen.

Hier sind einige dieser Nachteile:

Verschachtelte ternäre Operatoren können komplex werden

In einigen Fällen kann der ternäre Operator dazu führen, dass der Code weniger lesbar ist, insbesondere wenn komplexe oder verschachtelte Bedingungen verwendet werden. In solchen Situationen kann die Einbindung herkömmlicher if-else-Anweisungen besser geeignet sein, um die Klarheit des Codes zu gewährleisten.

Dies gilt insbesondere dann, wenn Sie versuchen, eine verschachtelte if-else-Anweisung durch einen ternären Operator zu ersetzen. Es führt selten zu sauberem Code.

Jeder Operand ist ein Ausdruck

Alle Operanden oder Rückgabewerte in einem ternären Python-Operator sind Ausdrücke, keine Anweisungen. Der Versuch, eine Zuweisungsanweisung innerhalb der Syntax des ternären Operators zu verwenden, führt zu einem Syntaxfehler.

Ein Beispiel hierfür finden Sie im folgenden Code.

'Adult' if True else x = 44

Wie Sie unten sehen können, führt dies zu einem Syntaxfehler. In solchen Fällen sollten Sie einen if-else-Block anstelle eines bedingten Operators verwenden.

Ternärer Operator in Python – Was?  Wie?  Warum?

Best Practices und Tipps

Bei der Verwendung des ternären Operators in Python gibt es einige Best Practices und Tipps, die Ihnen dabei helfen, sauberen, effizienten und lesbaren Code zu schreiben.

Stellen Sie zunächst sicher, dass Ihr bedingter Ausdruck kurz und prägnant ist. Lange und komplexe Bedingungen können es schwierig machen, die Logik hinter dem ternären Operator zu verstehen.

Wenn Sie mit einer komplexen Situation konfrontiert sind, ist es möglicherweise besser, stattdessen eine reguläre if-else-Anweisung zu verwenden.

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

Zweitens vermeiden Sie die Verschachtelung mehrerer ternärer Operatoren, da dies zu verwirrendem und unlesbarem Code führen kann. Erwägen Sie wie bei komplexen Bedingungen die Verwendung einer if-else-Anweisung, um die Lesbarkeit zu verbessern.

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

Beachten Sie abschließend die geeigneten Anwendungsfälle für den ternären Operator. Es eignet sich am besten für einfache, einzeilige Aufgaben, bei denen sowohl die Bedingung als auch das Ergebnis leicht zu verstehen sind.

Wenn Ihr Code komplexere Logik, Schleifen oder Mehrfachzuweisungen beinhaltet, ist es besser, bei herkömmlichen if-else-Anweisungen zu bleiben.

FAQs zu ternären Python-Operatoren

Hier sind einige Fragen, die uns neue Programmierer normalerweise zu ternären Operatoren stellen:

Wie verwendet man den ternären Operator in einer Return-Anweisung in Python?

Sie können einen ternären Python-Operator in der Return-Anweisung einer Funktion verwenden. Sie müssen es lediglich zur Return-Anweisung hinzufügen.

Hier ist ein Beispiel:

#program to check cheese age

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

Ist ein ternärer Operator schneller als eine if-else-Anweisung in Python?

Nein, beide haben ähnliche Leistungsmerkmale. Ein ternärer Operator und eine if-else-Anweisung haben beide eine Zeitkomplexität von O(1).


So speichern und laden Sie eine RDS-Datei in R

So speichern und laden Sie eine RDS-Datei in R

Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.

Einführung in den Filterkontext in LuckyTemplates

Einführung in den Filterkontext in LuckyTemplates

In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.

Materialisierungsideen für Datencaches in DAX Studio

Materialisierungsideen für Datencaches in DAX Studio

In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.

Geschäftsberichte mit LuckyTemplates

Geschäftsberichte mit LuckyTemplates

Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst