Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Operator Precedence i Python | Mastering Python If-Statements
Betingede Udsagn i Python

book
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)
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 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)
copy
Opgave

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:

  1. Brugeren ikke har nået deres skridtmål.
  2. Brugeren ikke har forbrændt nok kalorier.
  3. Brugeren ikke trænede om morgenen.

Omskriv koden for at forbedre dens læsbarhed, mens du bevarer den samme logik.

Løsning

steps_taken = 9000
step_goal = 10000
calories_burned = 350
calorie_goal = 500
morning_exercise = False

all_conditions_met = True

if steps_taken <= step_goal and calories_burned <= calorie_goal and not morning_exercise:
all_conditions_met = False
print("Have all conditions been met?", all_conditions_met)
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 5
steps_taken = 9000
step_goal = 10000
calories_burned = 350
calorie_goal = 500
morning_exercise = False

all_conditions_met = True

# Rewrite this using a single if statement
if steps_taken <= step_goal:
if calories_burned <= calorie_goal:
if morning_exercise == False:
all_conditions_met = False

# Testing
print("Have all conditions been met?", all_conditions_met)

Spørg AI

expand
ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

We use cookies to make your experience better!
some-alt