Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Operaattorien Etusija Pythonissa | Mastering Python If Statements
Ehdolliset Lauseet Pythonissa

book
Operaattorien Etusija Pythonissa

Kun kehität Python-sovellusta, on tärkeää ymmärtää, miten Python käsittelee operaattorien etusijajärjestystä, joka määrittää, missä järjestyksessä operaatiot suoritetaan lausekkeissa. Tämä varmistaa, että ehdot arvioidaan oikein. Sulkujen käyttö voi myös auttaa selventämään ja hallitsemaan operaatioiden järjestystä.

Loogisten operaattorien etusijajärjestys

Loogisten operaattorien keskuudessa Python noudattaa tätä etusijajärjestystä:

Esimerkki: Kuntoseurannan tavoitteet

Selvennetään esimerkkien avulla kuntoseurannan kontekstissa:

# 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
Tehtävä

Swipe to start coding

Nykyisessä Fitness Tracker -koodissa useat sisäkkäiset if-lauseet tekevät logiikasta vaikeaselkoisen ja vaikeasti ylläpidettävän. Tehtäväsi on kirjoittaa koodi uudelleen käyttämällä yhtä, ytimekästä if-lausetta loogisilla operaattoreilla. Käytä and-loogista operaattoria yhdistämään useita ehtoja.

Kuntoilutavoitteiden tulisi olla tehokkaasti seurattavissa, samoin kuin koodisi! Nykyinen toteutus tarkistaa, jos:

  1. Käyttäjä ei ole saavuttanut askeltavoitettaan.
  2. Käyttäjä ei ole polttanut tarpeeksi kaloreita.
  3. Käyttäjä ei harjoitellut aamulla.

Kirjoita koodi uudelleen parantaaksesi sen luettavuutta samalla säilyttäen sama logiikka.

Ratkaisu

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)
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 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)

Kysy tekoälyä

expand
ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt