Koje operacije imaju prioritet

7.2 Koje operacije imaju proritet? 

Vežbaj, vežbaj... Kao da sam neki bodi-bilder....
Pa i jesi, ali bih to više nazvao „brain builder“....
Ali, hajde da se osvrnemo na još jednu važnu temu, a to je – koja matematička operacija ima prioritet? Ili, još bolje pitanje: kakva je hijerarhija izvršavanja komandi u Pythonu? Ako se komande nađu u istom redu, kako ćemo znati šta Python radi prvo, a šta drugo?
Hajde da se vratimo tvom poznavanju matematike....
Ako za zadatak imalš da izračunaš vrednost izraza, na primer 24 + 2 * 3 , da li ćeš prvo sabrati 24 + 2 ili ćeš prvo izvršiti množenje 2 * 3?
Idi begaj! Pa to je lako, pošto čitamo sa leva na desno, znači da ćemo prvo sabrati 24 + 2. Narodi koji čitaju suprotno , će prvo pomnožiti 2 * 3, što je pogrešno!
Bravo za tvog nastavnika matematike!
Ukoliko si makar takao svoju knjigu iz matematike, koju si koristio u nekom od viših razreda u svojoj Osnovnoj školi, znao bi da se uvek prvo radi množenje. To znači da operacija množenja ima veći prioritet od operatora sabiranja. 
Budući da se stvari komplikuju kada u celu priču ubacimo stepenovanje, sinuse, kosinuse, neki put ni u matematici nije lako odrediti šta ide prvo (pogotovo kada čitaš zadatak nekoga ko „piše nogama“). A kako li je tek u Pythonu? Već smo upoznali neke funkcije, komande, a, pretpostavljaš i sam, ima mnogo, mnogo više stvari?
Eh, zato, da se ne bi smo gubili kako-šta, postoji tabela koja predstavlja prvenstvo izvršavanja operacija u Python-u, od najnižeg prioriteta (najkasnije se izvršava - poslednja) do najvišeg prioriteta (najranije se izvršava - prva). To znači, da će u datoj liniji, Python prvo izvršavati operacije koje se nalaze niže u priloženoj tabeli. 
Sledeća tabela preuzeta je sa sajta Python reference manual, ovde je napomenuta za tvoju informaciju, jer postoji i pametniji način od pamćenja prvenstva izvršavanja operacija – i to: korišćenje zagrada za grupisanje operacija na željeni način. Ako koristimo zagrade, mi direktno imamo kontrolu nad redosledom izvršavanja operacija, a sem toga, ako grupišemo operacije u zagrade učinićemo da naš program bude lakše čitljiv, kako nama, tako i nekome trećem, ko je zainteresovan. Više o tome malko kasnije.
I još jedna kratka napomena, pola stvari u ovoj tabeli ti je u ovom trenutku nepoznato. Neka ti to ne bude neki mambo-džambo, nego shvati to kao mali plamen sveće koji treba da ti osvetli celu prostoriju.
Operacija
Opis
lambda
Funkcija lambda
if - else
Operacija grananja
or
Bulovo ILI
and
Bulovo I
not x
Bulovo NE
in, not in, is, is not, <, <=, >, >=, !=, ==
Komparatori, testovi pripadnosti, testovi „identiteta“
|
Logičko ILI nad bitovima brojeva
^
Logička operacija XOR nad bitovima brojeva
&
Logičko I nad bitovima brojeva
<<, >>
Pomeranje bitova broja
+, -
Sabiranje i oduzimanje
*, /, //, %
Množenje, deljenje, celobrojno deljenje, ostatak deljenja
+x, -x, ~x
Pozitivan, negativan broj, logička inverzija bitova broja
**
Stepenovanje
x[indeks], x[indeks:indeks], x(argumenti...), x.atribut
Subskripcija, isecanje, pozivanje funkcije, referenca atributa objekta
(operacije...), [operacije...], {ključ: vrednost...}, {operacije...}
Kreiranje/prikaz: tuple, liste, rečnika i skupa
Operacije koje imaju isto prvenstvo su navedeni u istom redu u gornjoj tabeli. Na primer, + i - imaju istu prednost prilikom izvršavanja.

7.1.1 Prečice za
matematičke operacije
Indeks 7.3 Promena redosleda
izvršavanja operacija

Коментари

Popularno

Tehnički problemi (i ostala tehnička čudesa) u najavi (i u bliskoj istoriji)

Izvršavanje Python programa

Vredela si svakoga stiha

Izbor uređivača teksta (Editora)

Kreiranje izvorne datoteke

Prevelika očekivanja

Strip o Brus Liju?

Matematički izrazi (ekspresije) u naše programu

Parametri i argumenti funkcija