Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Operatorprioriteit in Python | Meester Worden in Python If-Statements
Controleflow in Python
Sectie 1. Hoofdstuk 5
single

single

Operatorprioriteit in Python

Veeg om het menu te tonen

Bij het ontwikkelen van een Python-toepassing is het belangrijk om te begrijpen hoe Python omgaat met operatorprioriteit, wat bepaalt in welke volgorde bewerkingen in expressies worden uitgevoerd. Dit zorgt ervoor dat voorwaarden correct worden geëvalueerd. Het gebruik van haakjes kan ook helpen om de volgorde van bewerkingen te verduidelijken en te beheersen.

Prioriteit van logische operatoren

Onder logische operatoren hanteert Python de volgende prioriteit:

Voorbeeld: Doelen van een fitness tracker

Laten we dit verduidelijken met voorbeelden in de context van een fitness tracker:

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)
Codebeschrijving
expand arrow

Eerste resultaat:

  • Python evalueert eerst and: (calories_burned >= calorie_goal and False, hetzelfde als False and False) wordt False;
  • Daarna wordt or toegepast: steps_taken >= step_goal or False wordt False or False, wat resulteert in False.

Tweede resultaat:

  • Haakjes zorgen ervoor dat Python eerst steps_taken >= step_goal or calories_burned >= calorie_goal evalueert. Omdat zowel steps_taken >= step_goal als calories_burned >= calorie_goal False zijn, is het resultaat van de haakjes False;
  • Vervolgens wordt False and False geëvalueerd, wat resulteert in False.

Derde resultaat:

  • not heeft de hoogste prioriteit, dus not (steps_taken >= step_goal) wordt als eerste geëvalueerd. Omdat steps_taken >= step_goal False is, wordt not False True;
  • Vervolgens wordt calories_burned >= calorie_goal geëvalueerd, wat False is;
  • Tot slot resulteert True or False in True.
Note
Opmerking

Net als logische operatoren volgen andere operatoren zoals vergelijkingsoperatoren (>=, <=, ==, enz.) en wiskundige operatoren (+, -, *, /, enz.) ook een specifieke volgorde van prioriteit.

Bijvoorbeeld:

  1. Wiskundige operatoren zoals * en / hebben een hogere prioriteit dan + en -;
  2. Vergelijkingsoperatoren (<, >, ==, enz.) worden geëvalueerd na wiskundige bewerkingen;
  3. Logische operatoren (not, and, or) worden als laatste geëvalueerd.

Het gebruik van haakjes ( ) kan helpen om de volgorde van evaluatie in je expressies te verduidelijken en te sturen.

Taak

Veeg om te beginnen met coderen

In de huidige Fitness Tracker-code maken meerdere geneste if-statements de logica moeilijker leesbaar en onderhoudbaar. De opdracht is om de code te herschrijven met één enkele, beknopte if-statement met logische operatoren. Gebruik de logische operator and om meerdere voorwaarden te combineren.

Fitnessdoelen moeten efficiënt worden bijgehouden, en dat geldt ook voor je code! De huidige implementatie controleert of:

  1. De gebruiker zijn stappendoel niet heeft gehaald.
  2. De gebruiker niet genoeg calorieën heeft verbrand.
  3. De gebruiker niet in de ochtend heeft gesport.

Herschrijf de code om de leesbaarheid te verbeteren, terwijl de logica hetzelfde blijft.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 5
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

some-alt