Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Operatorrangfolge in Python | Beherrschung von Python-If-Anweisungen
Kontrollfluss in Python
Abschnitt 1. Kapitel 5
single

single

Operatorrangfolge in Python

Swipe um das Menü anzuzeigen

Beim Entwickeln einer Python-Anwendung ist es wichtig zu verstehen, wie Python die Operatorrangfolge behandelt, da diese bestimmt, in welcher Reihenfolge Operationen in Ausdrücken ausgeführt werden. Dies stellt sicher, dass Bedingungen korrekt ausgewertet werden. Die Verwendung von Klammern kann ebenfalls dazu beitragen, die Reihenfolge der Operationen zu verdeutlichen und zu steuern.

Vorrang der logischen Operatoren

Unter den logischen Operatoren folgt Python dieser Rangfolge:

Beispiel: Ziele eines Fitness-Trackers

Zur Verdeutlichung einige Beispiele im Kontext eines Fitness-Trackers:

12345678910111213141516171819
# Example 1: AND has higher precedence than OR steps_taken = 8000 step_goal = 10000 calories_burned = 450 calorie_goal = 500 first_result = steps_taken >= step_goal or calories_burned >= calorie_goal and False # Same as: steps_taken >= step_goal or (calories_burned >= calorie_goal and False) # Example 2: Parentheses change the precedence second_result = (steps_taken >= step_goal or calories_burned >= calorie_goal) and True # Example 3: NOT has the highest precedence third_result = not (steps_taken >= step_goal) or calories_burned >= calorie_goal # Same as: (not (steps_taken >= step_goal)) or (calories_burned >= calorie_goal) print('The first expression is:', first_result) print('The second expression is:', second_result) print('The third expression is:', third_result)
Codebeschreibung
expand arrow

Erstes Ergebnis:

  • Python wertet zuerst and aus: (calories_burned >= calorie_goal and False, also False and False) ergibt False;
  • Danach wird or angewendet: steps_taken >= step_goal or False ergibt False or False, was zu False führt.

Zweites Ergebnis:

  • Klammern erzwingen, dass Python zuerst steps_taken >= step_goal or calories_burned >= calorie_goal auswertet. Da sowohl steps_taken >= step_goal als auch calories_burned >= calorie_goal False sind, ist das Ergebnis der Klammer False;
  • Danach wird False and False ausgewertet, was zu False führt.

Drittes Ergebnis:

  • not hat die höchste Priorität, daher wird not (steps_taken >= step_goal) zuerst ausgewertet. Da steps_taken >= step_goal False ist, wird not False zu True;
  • Als Nächstes wird calories_burned >= calorie_goal ausgewertet, was False ist;
  • Schließlich ergibt True or False das Ergebnis True.
Note
Hinweis

Genau wie logische Operatoren folgen auch andere Operatoren wie Vergleichsoperatoren (>=, <=, ==, usw.) und mathematische Operatoren (+, -, *, /, usw.) einer bestimmten Reihenfolge der Auswertung.

Zum Beispiel:

  1. Mathematische Operatoren wie * und / haben eine höhere Priorität als + und -;
  2. Vergleichsoperatoren (<, >, ==, usw.) werden nach den mathematischen Operationen ausgewertet;
  3. Logische Operatoren (not, and, or) werden zuletzt ausgewertet.

Die Verwendung von Klammern ( ) kann helfen, die Reihenfolge der Auswertung in Ausdrücken zu verdeutlichen und zu steuern.

Aufgabe

Wischen, um mit dem Codieren zu beginnen

Im aktuellen Fitness-Tracker-Code erschweren mehrere verschachtelte if-Anweisungen die Lesbarkeit und Wartbarkeit der Logik. Ihre Aufgabe ist es, den Code mithilfe einer einzigen, prägnanten if-Anweisung mit logischen Operatoren umzuschreiben. Verwenden Sie den logischen Operator and, um mehrere Bedingungen zu kombinieren.

Fitnessziele sollten effizient verfolgt werden – ebenso Ihr Code! Die aktuelle Implementierung prüft, ob:

  1. Der Benutzer sein Schrittziel nicht erreicht hat.
  2. Der Benutzer nicht genügend Kalorien verbrannt hat.
  3. Der Benutzer morgens nicht trainiert hat.

Schreiben Sie den Code um, um die Lesbarkeit zu verbessern und die Logik beizubehalten.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 5
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

some-alt