Bewährte Praktiken für bedingte Anweisungen in Python
Dieser Artikel erklärt die bewährten Praktiken für bedingte Anweisungen in Python.
YouTube Video
Bewährte Praktiken für bedingte Anweisungen in Python
Die if-Anweisung in Python ist ein grundlegendes Konstrukt zur Implementierung von bedingtem Verzweigen und hat erhebliche Auswirkungen auf die Lesbarkeit und Wartbarkeit des Codes. Hier werden wir die bewährten Praktiken für die Verwendung von if-Anweisungen ausführlich besprechen.
Verwenden Sie explizite Bedingungsausdrücke
Schreiben Sie bedingte Ausdrücke prägnant und eindeutig und vermeiden Sie überflüssige Anweisungen.
1condition = True
2
3### Bad Example
4if condition == True:
5 pass
6
7### Good Example
8if condition:
9 pass- In Python können Sie anzeigen, dass eine Bedingung wahr ist, indem Sie
if Bedingung:schreiben.
Kombination mehrerer Bedingungen
Beim Kombinieren mehrerer Bedingungen verwenden Sie and oder or. Wenn Bedingungsausdrücke jedoch komplex werden, kann die Lesbarkeit abnehmen. Ziehen Sie daher die folgenden Anpassungen in Betracht:.
1age = 15
2is_student = True
3
4### Bad Example
5# Complex condition
6if (age > 18 and age < 65) or (is_student and age > 15):
7 pass
8
9### Good Example
10# Improving readability
11is_working_age = 18 < age < 65
12is_eligible_student = is_student and age > 15
13
14if is_working_age or is_eligible_student:
15 pass- Durch das Aufteilen von Bedingungen und das Zuweisen zu Variablen kann die Lesbarkeit verbessert werden.
Kurzschlussauswertung bei and/or
In konditionalen Ausdrücken mit and oder or wird bei Kurzschlussauswertung die rechte Seite nicht ausgewertet, wenn das Ergebnis bereits durch den linken Wert bestimmt werden kann. Das Verständnis dessen hilft, unnötige Verarbeitung zu vermeiden und Fehler vorzubeugen.
1user = None
2def expensive_check():
3 return True
4
5# Example of short-circuiting with 'and'
6if user and user.is_active:
7 # If user is None, user.is_active will NOT be evaluated
8 print("Active user found.")
9
10# Example of short-circuiting with 'or'
11if user.is_admin or expensive_check(user):
12 # If user.is_admin is True, expensive_check will NOT be called.
13 print("Access granted.")
14else:
15 print("Access denied.")- Durch die Nutzung der Kurzschlussauswertung können Sie die Verarbeitungseffizienz und -sicherheit verbessern.
Priorität von and und or
and hat eine höhere Priorität als or. Wenn Sie Bedingungen unüberlegt kombinieren, können dadurch unerwartete Ergebnisse entstehen. Es ist wichtig, Klammern zu verwenden, um die eigene Absicht eindeutig zu machen.
1age = 15
2is_student = True
3
4### Unclear example
5# This is interpreted as: age > 18 and (age < 65 or is_student)
6if age > 18 and age < 65 or is_student:
7 pass
8
9### Clear example
10# Explicit parentheses make the intended logic obvious
11if (age > 18 and age < 65) or is_student:
12 pass- Durch die Verwendung von Klammern können Sie die Priorität von
andundorverdeutlichen und so das Risiko unerwarteter Fehler verringern.
Verstehen Sie Truthy und Falsy
In Python werden folgende Werte als False ausgewertet:.
NoneFalse- Die Zahl
0(einschließlich0.0) - Leere Sequenztypen (wie leere Listen, Tupel oder Zeichenketten)
- Beispiele:
[],(),""
- Beispiele:
- Leeres Wörterbuch
- Beispiel:
{}
- Beispiel:
Das Nutzen dieser Informationen kann helfen, Ihre Bedingungsausdrücke zu vereinfachen.
1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5 pass
6
7### Good Example
8if items:
9 passRichtige Verwendung von elif und else
Verwenden Sie elif, wenn mehrere Bedingungen geprüft werden. Verwenden Sie else, um ein Standardverhalten am Ende zu definieren.
1score = 80
2
3if score >= 90:
4 grade = "A"
5elif score >= 80:
6 grade = "B"
7elif score >= 70:
8 grade = "C"
9else:
10 grade = "F"elseist nicht zwingend erforderlich. Wenn alle Bedingungen abgedeckt sind, kann sie weggelassen werden.- Achten Sie auf die Reihenfolge der Bedingungsausdrücke und ordnen Sie sie logisch und ohne Redundanz.
Begrenzen Sie die Tiefe der Verschachtelung.
Tiefe Verschachtelungen von if-Anweisungen erschweren das Lesen des Codes.
1def access_resource():
2 return True
3
4### Bad Example
5def deep_nest(user, resource):
6 if user.is_authenticated:
7 if user.has_permission:
8 if resource.is_available:
9 access_resource()
10
11### Good Example
12def early_return(user, resource):
13 if not user.is_authenticated:
14 return
15 if not user.has_permission:
16 return
17 if not resource.is_available:
18 return
19
20 access_resource()- Die Verwendung von frühzeitigen Rückgaben kann die Verschachtelung reduzieren und den Code prägnanter machen.
Vermeiden Sie die Verwendung von einzeiligen if-Anweisungen.
Es ist möglich, if-Anweisungen in einer einzigen Zeile zu schreiben, aber dies kann die Lesbarkeit verringern.
1condition = False
2def do_something():
3 return True
4
5### Bad Example
6if condition: do_something()
7
8### Good Example
9if condition:
10 do_something()- Einzeilige if-Anweisungen sind nur bei kurzen Bedingungen oder Aktionen akzeptabel, aber vermeiden Sie allzu umfangreichen Code.
Vereinfachung mit dem ternären Operator oder or
Für einfache Verzweigungen kann der Einsatz des ternären Operators oder von or den Code übersichtlicher machen. Ein übermäßiger Gebrauch kann jedoch die Lesbarkeit Ihres Codes erschweren, daher sollten diese nur für einfache und intuitive Bedingungen verwendet werden.
1is_admin = True
2input_name = None
3
4# Regular if statement
5if is_admin:
6 role = "Administrator"
7else:
8 role = "User"
9
10# Simplified using an inline if
11role = "Administrator" if is_admin else "User"
12
13# Use 'or' to provide a default value
14name = input_name or "Guest"- Bei einfachen Bedingungen kann die Verwendung des ternären Operators oder von
orden Code kürzer und verständlicher machen.
Zwischenspeichern von Bedingungsausdrücken.
Bedingungsausdrücke mit aufwändigen Berechnungen oder Funktionsaufrufen können in Variablen zwischengespeichert werden, um die Leistung zu verbessern.
1def expensive_function():
2 pass
3
4def another_expensive_function():
5 pass
6
7### Bad Example
8if expensive_function() and another_expensive_function():
9 pass
10
11### Good Example
12result1 = expensive_function()
13result2 = another_expensive_function()
14if result1 and result2:
15 passZusammenfassung
Pythons if-Anweisungen sind einfache und leistungsstarke Werkzeuge, aber falsche Verwendung kann den Code kompliziert und schwer lesbar machen. Durch die Übernahme der hier vorgestellten bewährten Praktiken können Sie die Lesbarkeit, Wartbarkeit und Effizienz Ihres Codes verbessern.
Sie können den obigen Artikel mit Visual Studio Code auf unserem YouTube-Kanal verfolgen. Bitte schauen Sie sich auch den YouTube-Kanal an.