Operatori govore Pythonu šta da radi sa vrednostima.
Operator govori Pythonu koju operaciju treba da izvrši nad jednom ili više vrednosti. Nadovezujući se na Promenljive i Tipove podataka, jednostavan izraz čitaj kao vrednost → operator → vrednost → rezultat. Različiti operatori računaju vrednosti, postavljaju pitanja poređenja ili kombinuju logičke rezultate.
10 + 3Python vidi vrednost 10, operator + i vrednost 3. Operator + govori Pythonu da sabere ta dva broja, pa je rezultat 13. Operatori nisu samo simboli koje treba zapamtiti: svaki govori Pythonu kako da radi sa vrednostima.
vrednost → operator → vrednost → rezultat
10 → + → 3 → 13U ovoj lekciji aritmetički operatori računaju vrednosti, operatori poređenja daju vrednost tipa bool, a logički operatori kombinuju ili menjaju logičke rezultate. Tip vrednosti je i dalje važan: u lekciji Tipovi podataka naučio si da Python može različito da tretira brojeve i tekst.
Tipovi podataka su i dalje važni: Aritmetički operatori u ovoj lekciji rade sa brojevima. Kao što si naučio u lekciji Tipovi podataka, isti simbol može drugačije da se ponaša sa tekstom, zato najpre primeti sa kojim tipom vrednosti Python radi.
x = 10
y = 3
print(x + y) # 13
print(x - y) # 7
print(x * y) # 30
print(x / y) # 3.333...
print(x // y) # 3
print(x % y) # 1
print(2 ** 3) # 8+, - i * sabiraju, oduzimaju i množe. Ostale aritmetičke operatore vredi pažljivije pogledati: / deli, // broji cele grupe, % daje ostatak, a ** podiže broj na stepen.
print(10 / 2) # 5.0
print(10 // 3) # 3
print(10 % 3) # 1
# 10 = 3 × 3 + 1
number = 8
print(number % 2) # 0Operator / obavlja obično deljenje i vraća float, čak i kada odgovor izgleda kao ceo broj: 10 / 2 je 5.0. Sa pozitivnim brojevima, 10 // 3 govori da u deset staju tri cele grupe od po tri, dok 10 % 3 daje ostatak, 1. Ostatak 0 znači da je broj deljiv sa 2 bez ostatka — to će kasnije biti korisno pri radu sa parnim i neparnim brojevima.
print(2 ** 3) # 8
# 2 ** 3 means 2 × 2 × 2Operator ** je stepenovanje. 2 ** 3 znači pomnožiti 2 samim sobom tri puta: 2 × 2 × 2, što daje 8.
age = 18
print(age == 18) # True
print(age != 20) # True
print(age > 20) # False
print(age >= 18) # True
print(age < 21) # True
print(age <= 18) # TrueOperator poređenja postavlja Pythonu pitanje, na primer: „Da li je age veće ili jednako 18?“ Odgovor je uvek True ili False — vrednost tipa bool iz lekcije Tipovi podataka. ==, !=, >, <, >= i <= svi vrše poređenja.
age = 18 # assign 18 to age
print(age == 18) # ask whether age equals 18= dodeljuje vrednost imenu: age = 18. == pita da li je vrednost jednaka: age == 18. Zapamti: = dodeljuje; == poredi.
age = 20
has_ticket = True
is_raining = False
print(age >= 18 and has_ticket) # True
print(age < 18 or has_ticket) # True
print(not is_raining) # Trueand je True kada su oba uslova True. or je True kada je najmanje jedan uslov True. not obrće logičku vrednost: not False postaje True. Zapamti: and znači oba, or znači najmanje jedan, a not znači suprotno. Te ideje ćeš kasnije koristiti u lekciji Uslovi.
print(2 + 3 * 4) # 14
print((2 + 3) * 4) # 20Python ne izračunava izraz uvek sleva nadesno. Množenje se izvršava pre sabiranja, pa je 2 + 3 * 4 jednako 14. Zagrade menjaju redosled, pa je (2 + 3) * 4 jednako 20. Kada izraz može biti nejasan, upotrebi zagrade da pokažeš željeni redosled.
score = 12
bonus = 3
print(score + bonus * 2)
print(score >= 10)
print(score >= 10 and bonus > 0)Zastani pre nego što pokreneš ovaj program. Šta predviđaš? Python najpre množi bonus * 2, a zatim rezultat dodaje vrednosti score, pa je prvi rezultat 18. Sledeća dva reda postavljaju pitanja poređenja; oba daju True. Čitanje izraza korak po korak pomaže ti da razumeš kod, umesto da ga samo kopiraš.
