Prioritate și asociativitate
Esențial este să înțelegeți
modul în care se evaluează o expresie,
iar pentru aceasta avem nevoie de anumite noțiuni fundamentale.
Prioritatea (precedența) operatorilor. Deja sunteți obișnuiți cu această noțiune,
știind că indică ordinea efectuării operațiilor.
Asociativitatea operatorilor. Noțiunea vă poate fi nouă și este de două feluri: de la
stânga la dreapta
și de la
dreapta la stânga. De la început precizăm că operatorii cu aceeași prioritate au aceeași asociativitate.
Pentru a înțelege noțiunea de asociativitate, pornim de la o expresie în care operanzii sunt legați prin operatori
cu aceeași prioritate. Dacă asociativitatea operatorilor este de la stânga spre dreapta, prima operație care
se efectuează este cea corespunzătoare primului operator din stânga, a doua operație este cea corespunzătoare
celui de-al doilea din stânga, etc. Evident, în cazul în care asociativitatea este de la dreapta la stânga,
prima operație care se efectuează este cea a operatorului din dreapta, ș.a.m.d.
Spre exemplu, dacă avem operația
7 * 2 // 4, avem asociativitatea
de la
stânga la dreapta, deci se efectuează mai întâi
7*2, apoi
14//4, rezultatul fiind evident
3.
Așadar, aici
operatorii au aceeași prioritate.
Pe de altă parte, cu ajutorul operatorului "
**", puteți ridica un număr la puterea unui exponent.
În acest caz, asociativitatea este de la
dreapta la stânga. Pentru
2 ** 3 ** 2,
mai întâi se efectuează
32, rezultatul fiind
9. Apoi,
29, care obține valoarea
512.
Observați că
2 ** 3 ** 2 este echivalent cu
2 ** (3 ** 2).
Dacă folosim parantezele, rezultatul diferă, bineînțeles, deoarece acestea au o prioritate superioară operatorului "
**":
(2 ** 3) ** 2
Se efectuează mai întâi paranteza, adică
23 = 8, apoi
82, rezultatul final fiind
64.
Concluzie
Rețineți că atunci când scrieți expresii, rezultatul depinde de mediul de programare utilizat, în acest caz Python,
versiunea 3, precum și de totalitatea regulilor de sintaxă și a proprietăților cu ajutorul cărora acestea sunt evaluate.
Felicitări! Lecția s-a încheiat!
Cărțile editurii noastre
O parte dintre manualele și culegerile de probleme se găsește și [
în format electronic]
securizat sub formă
de fișier *.pdf.
"
O cameră fără cărţi este ca un corp fără suflet."
(G. K. Chesterton)
Cursanții au mai cumpărat ...
[
vezi lista completă a cărților]