Aritmetika

Za zgled imejmo nekaj spremenljivk: a naj ima vrednost 7.0, b naj bo 3, c naj bo "True" in d naj bo "False"

Matematične in logične operacije so v Pythonu enostavne. V spodnjem programu vidimo nekaj primerov seštevanja, odštevanja, množenja in deljanje, potenciranja, ter nekaj logičnih operacij:


 

Pri deljenju celih števil bo računalnik rezultat zaokrožil na celo število. Če želimo imeti realno število z decimalkami, mora biti vsaj eden od operandov realno število. Operandi so lahko tudi spremenljivke. Bolj zapletene aritmetične izraze dobimo s pomočjo okroglih oklepajev.

V nadaljevanju je popoln pregled vseh možnih operatorjev. Marsikaterega od njih povprečen uporabnik Pythona ne bo potreboval.

Bolj podrobno o aritmetičnih in logičnih operacijah

Operator Opis Primer
+ Seštevanje Sešteje vrednosti operandov na obeh straneh operatorja. a + b = 10
- Odštevanje Odšteje desni operand od levega. a – b = 4
* Množenje Množi vrednosti na obeh straneh operatorja a * b = 21
/ Delitev Deli levi operand z desnim a / b = 2.3333
% Modul Deli levi operand z desnim in vrne ostanek a % b = 1
** Eksponent Izračuna  vrednost levega operanda s potenco desnega a**b = 343  = (73)
// Floor deljenje: Delitev operandov, kjer je rezultat količnik,
v katerem se odstranijo številke za decimalno vejico.
Toda če je eden od operandov negativen,
je rezultat zaokrožen od ničle (proti negativni neskončnosti):
9//2 = 4 in 9.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.0


Operatorji primerjave

Ti operatorji primerjajo vrednosti na obeh straneh operatorja in odločijo relacijo med njima. Pravimo jim tudi relacijski operatorji.

Operator Opis Primer
== Če sta vrednosti operandov enaki, je trditev True. (c == d) ni res (ni True).
!= Če sta vrednosti operandov nista enaki, je trditev True. (a!= b)  je True.
> Če je vrednost levega operanda večja od vrednosti desnega, je trditev True. (a > b) je True.
< Če je vrednost levega operanda manjša od vrednosti desnega, je trditev True. (a < b) ni  True.
>= Če je vrednost levega operanda večja od ali enaka vrednosti desnega, je trditev True. (b >= a) ni True.
<= Če je vrednost levega operanda manjša od ali enaka vrednosti desnega, je trditev True. (b <= a) je True.


Operatorji prirejanja vrednosti

Operator Opis Primer
= Dodeli vrednost z desne strani operandu na levi strani v = a + b dodeli vrednost   a + b spremenljivki v
+=  prištej in shrani Vrednost desnega operanda prišteje levemu operandu in vanj shrani rezultat b += a  je isto kot
 b = b + a
+=  odštej in shrani Vrednost desnega operanda odšteje od  levega operanda in vanj shrani rezultat b -= a  je isto kot
 b = b - a
+=  pomnoži Množi levi operand z desnim in rezultat shrani v levega b *= a je isto kot  b = b * a
/= deli in shrani Deli levi operand z desnim in rezultat shrani v levega b /= a je isto kot b = b / a
%= Modul in shrani Izračuna modul dveh operandov in rezultat shrani v levi operand b %= a je isto kot b = b % a
**= potenca in shrani Izračuna  potenciranje in rezultat shrani v levega b**= a je isto kot b = b ** a
//= Floor deli in shrani Opravi "Floor" deljenje in rezultat shrani v levega


Operatorji na bitih

V splošnem so to operatorji &, |, ^, ~. Ti operatorji izvajajo operacije na posameznih bitih. Imejmo a = 60 in  b = 13; V binarnem zapisu bi to bilo:

a = 0011 1100
b = 0000 1101

In sedaj operacije:

a & b = 0000 1100
a | b = 0011 1101
a ^ b = 0011 0001
~ a = 1100 0011

Funkcija bin() omogoča binarno predstavitev nekega števila. Pri Pythonu poznamo naslednje operatorje na bitih:


Operator Opis Primer
& Binarni  AND Če je nek bit 1 v obeh operandih, bo 1 v istoležnem bitu rezultata. Sicer pa 0 (a & b)
(pomeni 0000 1100)
| Binarni OR Če je nek bit 1 v vsaj enem od operandov, bo 1 v istoležnem bitu rezultata. Sicer pa 0. (a | b) = 61
(pomeni 0011 1101)
^ Binarni XOR Če je nek bit 1 samo v enem od operandov, bo 1 v istoležnem bitu rezultata. Sicer pa 0 (a ^ b) = 49
(pomeni 0011 0001)
~ Binarni enojni komplement V rezultatu bodo istoležni biti obrnjeni (1 v 0 in obratno) (~a ) = -61
(pomeni 100 0011 .
<< Binarni pomik v levo Vrednost levega operanda bo premaknjena levo za število bitiv, določenih z desnim operandom. a << 2 = 240
(pomeni 1111 0000)
>> Binarni pomik v desno Vrednost levega operanda bo premaknjena desno za število bitiv, določenih z desnim operandom a >> 2 = 15
(pomeni 0000 1111)


Logični operatorji

Operator Opis Primer
and logični in Če sta levi in desni operand True, je trditev True. Sicer pa False (c and c) je True.
or logični ali Če je levi ali desni operand True, je tudi trditev True. Sicer pa False (c or d) is True.
not logični ne Invertira logično stanje operanda. not(c and c) is False.


Operatorji članstva

Operatorji članstva preverjajo članstvo v zaporedjih, kot so nizi, seznami ali  tuples. Poznamo dva taka operatorja.

Operator Opis Primer
in Če najde spremenljivko v podanem zaporedju, je True, sicer False. x in  y,
Rezultat bo True, če je x član zaporedja y.
not in Če ne najde spremenljivke v podanem zaporedju je True, sicer je False. x not in y,
Reziultat bo True, če x ni član zaporedja y.


Operatorji identitete

Operatorji identitete primerjajo lokacije dveh objektov v pomnilniku računalnika in tako ugotovijo, ali gre za isti objekt. TPoznamo dva operatorja identitete.

Operator Opis Primer
is Je True, če spremenljivki na obeh straneh operatorja kažeta na isti objekt. x is y,
je True, če  je id(x) enak id(y).
is not Je False, če spremenljivki na obeh straneh operatorja kažeta na isti objekt. x is not y,
 je False, če  je id(x) enak id(y).


Prednost operatorjev

Naslednja tabela prikazuje prednosti operatorjev od najvišje do najnižje.

Prednost Operator Opis
1 ** Potenciranje
2 ~ + - komplement, unarni plus in minus
3 * / % // Množenje, deljenje, modulo in floor deljenje
4 + - Seštevanje in odštevanje
5 >> << Pomik bitov desno ali levo
6 & Bitnarna operacija 'AND'
7 >^ | Binarni ekskluzivni 'OR'in navadni 'OR'
8 <= < > >= Operatorji primerjanja
9 <> == != Operatorji enakosti
10 = %= /= //= -= += *= **= Operatorji dodeljevanja
11 is is not Operatorji identitete
12 in not in Operatorji članstva
13 not or and Logični operatorji