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)
Ensimmäinen tulos:
- Python arvioi ensin
and: (calories_burned >= calorie_goal and False, sama kuin FalseandFalse) tulokseksi tuleeFalse; - Sitten käytetään
or:steps_taken >= step_goal or Falsemuuttuu muotoonFalse or False, tuloksenaFalse.
Toinen tulos:
- Sulut pakottavat Pythonin arvioimaan ensin
steps_taken >= step_goal or calories_burned >= calorie_goal. Koska molemmatsteps_taken >= step_goaljacalories_burned >= calorie_goalovatFalse, sulkujen tulos onFalse; - Sitten arvioidaan
False and False, tuloksenaFalse.
Kolmas tulos:
not-operaattorilla on korkein etusija, jotennot (steps_taken >= step_goal)arvioidaan ensin. Koskasteps_taken >= step_goalonFalse,not FalseonTrue;- Seuraavaksi arvioidaan
calories_burned >= calorie_goal, joka onFalse; - Lopuksi
True or Falseantaa tulokseksiTrue.
Samoin kuin loogiset operaattorit, myös muut operaattorit kuten vertailuoperaattorit (>=, <=, ==, jne.) ja matemaattiset operaattorit (+, -, *, /, jne.) noudattavat tiettyä etusijajärjestystä.
Esimerkiksi:
- Matemaattisilla operaattoreilla kuten
*ja/on korkeampi etusija kuin+ja-; - Vertailuoperaattorit (
<,>,==, jne.) arvioidaan matemaattisten operaatioiden jälkeen; - Loogiset operaattorit (
not,and,or) arvioidaan viimeisenä.
Sulkujen ( ) käyttö auttaa selkeyttämään ja hallitsemaan lausekkeiden arviointijärjestystä.
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:
- Käyttäjä ei ole saavuttanut askeltavoitettaan.
- Käyttäjä ei ole polttanut tarpeeksi kaloreita.
- Käyttäjä ei harrastanut liikuntaa aamulla.
Kirjoita koodi uudelleen parantaaksesi sen luettavuutta säilyttäen kuitenkin sama logiikka.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme