Python - Operatori


Šta su operatori u Python-u?

Operatori su posebni simboli u Python-u koji vrše aritmetičko ili logičko računanje. Vrijednost na kojoj operater operira naziva se operand. Pogledajmo primjer:

>>> 2+3
5

Ovdje je + operator koji vrši sabiranje. 2 i 3 su operandi, a 5 je rezultat operacije.



Aritmetički operatori

Aritmetički operatori se koriste za izvođenje matematičkih operacija poput sabiranja, oduzimanja, množenja itd.

Operator Značenje Primjer
+ Dodajte dva operanda ili unrni plus x + y+ 2
- Oduzmi desni operand od lijevog ili unarnog minusa x - y- 2
* Pomnoži dva operanda x * y
/ Podijelite lijevi operand sa desnim x / y
% Modul - ostatak pri djeljenju lijevog operanda sa desni x % y (remainder of x/y)
// Podjela koja rezultuje cijelim brojem prilagođenim s lijeva u liniji broja x // y
** Exponent - lijevi operand uzdignut na snagu desnog x**y (x to the power y)

Primjer 1: Aritmetički operateri u Python-u

x = 15
y = 4

# Ispisuje: x + y = 19
print('x + y =',x+y)

# Ispisuje: x - y = 11
print('x - y =',x-y)

# Ispisuje: x * y = 60
print('x * y =',x*y)

# Ispisuje: x / y = 3.75
print('x / y =',x/y)

# Ispisuje: x // y = 3
print('x // y =',x//y)

# Ispisuje: x ** y = 50625
print('x ** y =',x**y)


Operatori za poređenje

Operatori poređenja koriste se za poređenje vrijednosti. Vraća se tačno (true) ili netačno (false) u skladu s uslovima.

Operator Značenje Primjer
> Veće od - Točno (True) ako je lijevi operand veći od desnog x > y
< Manje od - Tačno (True) ako je lijevi operand manji od desnog x < y
== Jednako - Tačno (True) ako su obe operande jednake x == y
!= Nije jednako - Tačno (True) ako operandi nisu jednaki x == y
>= Veće ili jednako - Tačno (True) ako je lijevi operand veći ili jednak desnom x == y
<= Manje ili jednako - Tačno (True) ako je lijevi operand manji ili jednak desnom x == y

Primjer 2: Operatori poređenja u Python-u

x = 10
y = 12

# Ispisuje: x > y is False
print('x > y is',x>y)

# Ispisuje: x < y is True
print('x < y is',x<y)

# Ispisuje: x == y is False
print('x == y is',x==y)

# Ispisuje: x != y is True
print('x != y is',x!=y)

# Ispisuje: x >= y is False
print('x >= y is',x>=y)

# Ispisuje: x <= y is True
print('x <= y is',x<=y)


Logički operatori

Logički operatori su: and, or, not.

Operator Značenje Primjer
and Točno (True) ako su obe operande tačne x and y
or Tačno (True) ako je bilo koji od operandi tačan x or y
not Tačno (True) ako je operand False (dopunjuje operand) not x

Primjer 3: Logički operateri u Pythonu

x = True
y = False

print('x and y is',x and y)

print('x or y is',x or y)

print('not x is',not x)


Bitwise (Bitni) operatori

Bitni operatori djeluju na operande kao da su stringovi binarnih brojeva. Djeluju bit po bit, zbog toga su i dobili takvo ime. Na primjer, 2 je 10 u binarnom, a 7 je 111. U sljedećoj tabeli: Neka je x = 10 (0000 1010 u binarnom) i y = 4 (0000 0100 u binarnom).

Operator Značenje Primjer
& Bitwise AND x & y = 0 (0000 0000)
| Bitwise OR x | y = 14 (0000 1110)
~ Bitwise NOT ~x = -11 (1111 0101)
^ Bitwise XOR x ^ y = 14 (0000 1110)
>> Bitwise right shift x >> 2 = 2 (0000 0010)
<< Bitwise left shift x << 2 = 40 (0010 1000)


Operatori dodjele

Operatori dodjele koriste se u Python-u za dodjeljivanje vrijednosti varijablama. a = 5 je jednostavan operator dodjele koji varijabli a s lijeva dodjeljuje vrijednost 5 s desne strane. U Python-u postoje razni operateri složeni poput a += 5 koji dodaje vrijednost varijabli i kasnije se opet dodjeljuje isto. Ekvivalentno je a = a + 5.

Operator Primjer Ekvivalentno
= x = 5 x = 5
+=| x += 5 x = x + 5
-= x -= 5 x = x - 5
*= x *= 5 x = x * 5
/= x /= 5 x = x / 5
%= x %= 5 x = x % 5
//= x //= 5 x = x // 5
**= x **= 5 x = x ** 5
&= x &= 5 x = x & 5
|= x |= 5 x = x | 5
^= x ^= 5 x = x ^ 5
>>= x >>= 5 x = x >> 5
<<= x <<= 5 x = x << 5


Specijalni operatori

Jezik Python nudi neke posebne vrste operatora kao što su operator identiteta ili operator članstva. U nastavku su opisani sa primjerima.



Operatori identiteta

is i is not su operateri identiteta u Python-u. Koriste se za provjeru nalaze li se dvije vrijednosti (ili varijable) na istom dijelu memorije. Dvije jednake varijable ne znače da su identične.

Operator Značenje Primjer
is Tačno (True) ako su operandi identični (odnose se na isti objekt) x is True
is not Tačno (True) je ako operedi nisu identični (ne odnose se na isti objekt) x is not True

Primjer 4: Operatori identiteta u Python-u

x1 = 5
y1 = 5
x2 = 'Hello'
y2 = 'Hello'
x3 = [1,2,3]
y3 = [1,2,3]

# Ispisuje: False
print(x1 is not y1)

# Ispisuje: True
print(x2 is y2)

# Ispisuje: False
print(x3 is y3)

Ovdje vidimo da su x1 i y1 cijeli brojevi istih vrijednosti, pa su jednaki i identični. Isti je slučaj sa x2 i y2 (stringovi). Ali x3 i y3 su liste. Oni su jednaki, ali nisu identični. To je zato što ih tumač locira odvojeno u memoriji, iako su jednaki.



Membership operatori

in i not in su operateri članstva (Membership) u Pythonu. Koriste se za ispitivanje da li se vrijednost ili varijabla nalaze u sekvenci (string, list, tuple, set i dictionary). U dictionary možemo testirati samo prisustvo ključa, ali ne i vrijednost.

Operator Značenje Primjer
in Tačno (True) ako je vrijednost / varijabla pronađena u nizu 5 in x
not in Točno (True) ako se vrijednost / varijabla ne nađe u nizu 5 not in x

Primjer 5: Operatori za članstvo (Membership) u Pythonu

x = 'Hello world'
y = {1:'a',2:'b'}

# Ispisuje: True
print('H' in x)

# Ispisuje: True
print('hello' not in x)

# Ispisuje: True
print(1 in y)

# Ispisuje: False
print('a' in y)

Ovdje je 'H' u x, ali 'hello' nije u x (sjetite se da Python razlikuje velika i mala slova). Slično tome, 1 je ključ, a 'a' je vrijednost u rječniku (dictionary) y. Dakle, 'a' u y vraća False.