Rozdział 5 · Pobawmy się liczbami!

Operatory unarne

Jeden operand, a nie dwa — i jedna bardzo znana pułapka priorytetu operacji.

-5 — to nie „minus pięć jako osobna liczba”, tylko zastosowanie unary operator - do liczby 5. Unary oznacza „z jednym operandem”8 - 3).

unarnyj.py
x = 5
print(-x)     # -5 – Unary minus changes sign
print(+x)     # 5 — jednolity plus prawie nic nie robi (rzadko używany)
print(8 - 3)  #5 – I to jest odejmowanie binarne, dwa operandy

Klasyczna pułapka: -2 ** 2

Wielu się spodziewa -4, ale podejrzewana 4 (jakby najpierw liczyć (-2) ** 2). Sprawdźmy:

lovushka.py
print(-2 ** 2)     # -4
print((-2) ** 2)   #4 to inny numer!
()
nawiasy zawsze są pierwsze
**
potęgowanie
+x -x
operator jednoargumentowy plus/minus
* / // %
mnożenie, dzielenie, dzielenie całkowite, reszta
+ -
dodatku, odejmowanie
** stoi WYŻEJ niż minus jednoargumentowy — dlatego -2 ** 2 najpierw podnosi 2 do kwadratu
-2 ** 2
-(2 ** 2)
-(4)
-4
** wykonuje się przed unarnym minusom — najpierw 2 ** 2 = 4, następnie stosuje się minus
** to jedyny tego wyjątek tego typu
Dla wszystkich innych operatorów priorytet zachowuje się zgodnie z oczekiwaniami. To właśnie dzięki tej funkcji ** doświadczony programista prawie zawsze pisze (-2) ** 2 wyraźnie, nawiasami — nawet gdy priorytet jest formalnie jasny.
Praktyka: Operatory unarne
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →