Operator Precedence i Python
Når du udvikler en Python-applikation, er det vigtigt at forstå, hvordan Python håndterer operatorpræcedens, som bestemmer rækkefølgen, hvori operationer udføres i udtryk. Dette sikrer, at betingelser evalueres korrekt. Brug af parenteser kan også hjælpe med at tydeliggøre og kontrollere rækkefølgen af operationer.
Logisk Operator Præcedens
Blandt logiske operatorer følger Python denne præcedens:
Eksempel: Fitness Tracker Mål
Lad os tydeliggøre med eksempler i konteksten af en Fitness Tracker:
# 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 False # 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)
Swipe to start coding
I den nuværende Fitness Tracker-kode gør flere indlejrede if
-udsagn logikken sværere at læse og vedligeholde. Din opgave er at omskrive koden ved hjælp af en enkelt, kortfattet if
-udsagn med logiske operatorer. Brug den and
logiske operator til at kombinere flere betingelser.
Fitnessmål bør spores effektivt, og det samme bør din kode! Den nuværende implementering kontrollerer om:
- Brugeren ikke har nået deres skridtmål.
- Brugeren ikke har forbrændt nok kalorier.
- Brugeren ikke trænede om morgenen.
Omskriv koden for at forbedre dens læsbarhed, mens du bevarer den samme logik.
Løsning
Tak for dine kommentarer!