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.
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 |
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. |
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 | |
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) |
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 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 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). |
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 |