Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Operaattorien Etusijajärjestys Pythonissa | Pythonin If-Lauseiden Hallinta
Ohjausvirta Pythonissa
Osio 1. Luku 5
single

single

Operaattorien Etusijajärjestys Pythonissa

Pyyhkäise näyttääksesi valikon

Python-sovellusta kehitettäessä on tärkeää ymmärtää, miten Python käsittelee operaattoreiden etusijajärjestystä, joka määrittää, missä järjestyksessä lausekkeiden operaatiot suoritetaan. Tämä varmistaa, että ehdot arvioidaan oikein. Sulkujen käyttö voi myös selkeyttää ja hallita operaatioden järjestystä.

Loogisten operaattoreiden etusijajärjestys

Loogisten operaattoreiden osalta Python noudattaa seuraavaa etusijajärjestystä:

Esimerkki: Kuntoseurannan tavoitteet

Selvennetään asiaa esimerkkien avulla kuntoseurannan kontekstissa:

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)
Koodin kuvaus
expand arrow

Ensimmäinen tulos:

  • Python arvioi ensin and: (calories_burned >= calorie_goal and False, sama kuin False and False) tulokseksi tulee False;
  • Sitten käytetään or: steps_taken >= step_goal or False muuttuu muotoon False or False, tuloksena False.

Toinen tulos:

  • Sulut pakottavat Pythonin arvioimaan ensin steps_taken >= step_goal or calories_burned >= calorie_goal. Koska molemmat steps_taken >= step_goal ja calories_burned >= calorie_goal ovat False, sulkujen tulos on False;
  • Sitten arvioidaan False and False, tuloksena False.

Kolmas tulos:

  • not-operaattorilla on korkein etusija, joten not (steps_taken >= step_goal) arvioidaan ensin. Koska steps_taken >= step_goal on False, not False on True;
  • Seuraavaksi arvioidaan calories_burned >= calorie_goal, joka on False;
  • Lopuksi True or False antaa tulokseksi True.
Note
Huomio

Samoin kuin loogiset operaattorit, myös muut operaattorit kuten vertailuoperaattorit (>=, <=, ==, jne.) ja matemaattiset operaattorit (+, -, *, /, jne.) noudattavat tiettyä etusijajärjestystä.

Esimerkiksi:

  1. Matemaattisilla operaattoreilla kuten * ja / on korkeampi etusija kuin + ja -;
  2. Vertailuoperaattorit (<, >, ==, jne.) arvioidaan matemaattisten operaatioiden jälkeen;
  3. Loogiset operaattorit (not, and, or) arvioidaan viimeisenä.

Sulkujen ( ) käyttö auttaa selkeyttämään ja hallitsemaan lausekkeiden arviointijärjestystä.

Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Nykyisessä Fitness Tracker -koodissa useat sisäkkäiset if-lauseet tekevät logiikasta vaikeaselkoista ja hankalasti ylläpidettävää. Tehtävänäsi on kirjoittaa koodi uudelleen käyttämällä yhtä, tiivistä if-lausetta loogisten operaattoreiden avulla. Käytä and-loogista operaattoria yhdistääksesi useita ehtoja.

Kuntoilutavoitteiden seuraamisen tulee olla tehokasta – samoin myös koodisi! Nykyinen toteutus tarkistaa seuraavat asiat:

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

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

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 5
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

some-alt