Przejdź do treści
Strona główna » Blog » Python: operatory

Python: operatory

Czym są operatory?

W programowaniu, w tym w Pythonie, operatory to określone symbole, które używane są do wykonywania operacji na wartościach i zmiennych. Do takich operacji zaliczamy np. operacje arytmetyczne, jak dodawanie i odejmowanie, czy operacje porównywania wartości. W niniejszym artykule omówię wszystkie kategorie operatorów w języku Python.

Operatory arytmetyczne

Operatory arytmetyczne służą do wykonywania podstawowych operacji matematycznych, takich jak dodawanie, odejmowanie, dzielenie i mnożenie. Do tej kategorii zaliczamy jeszcze takie operacje jak modulo (reszta z dzielenia), dzielenie całkowite i potęgowanie. Działanie operatorów arytmetycznych zademonstrowałem w poniższym przykładzie.

# Operatory arytmetyczne w Pythonie

# Dodawanie
a = 5
b = 3
c = a + b
print(f"Dodawanie: {a} + {b} = {c}")

# Odejmowanie
d = a - b
print(f"Odejmowanie: {a} - {b} = {d}")

# Mnożenie
e = a * b
print(f"Mnożenie: {a} * {b} = {e}")

# Dzielenie
f = a / b
print(f"Dzielenie: {a} / {b} = {f}")

# Dzielenie całkowite
g = a // b
print(f"Dzielenie całkowite: {a} // {b} = {g}")

# Reszta z dzielenia
h = a % b
print(f"Reszta z dzielenia: {a} % {b} = {h}")

# Potęgowanie
i = a ** b
print(f"Potęgowanie: {a} ** {b} = {i}")

Wynik:

Dodawanie: 5 + 3 = 8
Odejmowanie: 5 - 3 = 2
Mnożenie: 5 * 3 = 15
Dzielenie: 5 / 3 = 1.6666666666666667
Dzielenie całkowite: 5 // 3 = 1
Reszta z dzielenia: 5 % 3 = 2
Potęgowanie: 5 ** 3 = 125

W przykładzie powyżej wyświetlanie komunikatów wykonałem przy użyciu tzw. f-stringów. Jest to bardzo wygodny sposób, który polega na wstawieniu przed ciągiem znaków litery f, a wewnątrz tego ciągu znaków umieszczamy wartości zmiennych w nawiasach klamrowych.

W Pythonie możemy również skorzystać ze skróconego zapisu do zmiany wartości zmiennych. Przykładowo, gdy chcemy zwiększyć wartość zmiennej i o 1, to zamiast instrukcji:
i = i + 1
możemy zapisać:
i += 1
Takie operatory (np. +=) nazywamy operatorami przypisania. Omówię je w dalszej części artykułu.

Priorytet wykonywania operacji arytmetycznych

Kolejność operatorów arytmetycznych w Pythonie jest zgodna z ogólnie przyjętymi zasadami matematycznymi, czyli zastosowaniem nawiasów, potęgowania, mnożenia i dzielenia, oraz dodawania i odejmowania. Poniższy przykład ilustruje tę kolejność:

# Przykład kolejności operatorów arytmetycznych w Pythonie

# Zadane wyrażenie: (2 + 3) * 4 ** 2 / 2 - 7

# Krok 1: Nawiasy (2 + 3)
step_1 = 2 + 3

# Krok 2: Potęgowanie 4 ** 2
step_2 = 4 ** 2

# Krok 3: Mnożenie step_1 * step_2
step_3 = step_1 * step_2

# Krok 4: Dzielenie step_3 / 2
step_4 = step_3 / 2

# Krok 5: Odejmowanie step_4 - 7
result = step_4 - 7

# Wyświetlenie wyniku
print(f"Wynik wyrażenia (2 + 3) * 4 ** 2 / 2 - 7 wynosi: {result}")

Wynik:

Wynik wyrażenia (2 + 3) * 4 ** 2 / 2 - 7 wynosi: 33.0

Operatory porównania

Operatory porównania, zwane również operatorami relacyjnymi, jak można się domyśleć, służą do porównywania wartości zmiennych. Zastosowanie takiego operatora zwraca wartość Prawda (True) lub Fałsz (False). Do dyspozycji mamy następujące operatory relacyjne:

  • „Większe niż”: wyrażenie a > b zwraca wartość Prawda, jeżeli a jest większe niż b. W przeciwnym razie, zwraca Fałsz.
  • „Mniejsze niż”: wyrażenie a < b zwraca wartość Prawda, jeżeli a jest mniejsze niż b.
  • „Większe lub równe”: wyrażenie a >= b zwraca wartość Prawda, jeżeli a jest większe lub równe b.
  • „Mniejsze lub równe”: wyrażenie a <= b zwraca wartość Prawda, jeżeli a jest mniejsze lub równe b.
  • „Równe”: wyrażenie a == b zwraca wartość Prawda, jeżeli a jest równe b.
  • „Różne od”: wyrażenie a != b zwraca wartość Prawda, jeżeli a jest różne od b.

Przykład zastosowania

# Przykład zastosowania operatorów relacyjnych w Pythonie

# Zadane wartości
x = 10
y = 5

# Operator równości (==)
result_equal = x == y
print(f"Czy {x} jest równe {y}? {result_equal}")

# Operator nierówności (!=)
result_not_equal = x != y
print(f"Czy {x} jest różne od {y}? {result_not_equal}")

# Operator większe niż (>)
result_greater_than = x > y
print(f"Czy {x} jest większe niż {y}? {result_greater_than}")

# Operator mniejsze niż (<)
result_less_than = x < y
print(f"Czy {x} jest mniejsze niż {y}? {result_less_than}")

# Operator większe niż lub równe (>=)
result_greater_than_or_equal = x >= y
print(f"Czy {x} jest większe niż lub równe {y}? {result_greater_than_or_equal}")

# Operator mniejsze niż lub równe (<=)
result_less_than_or_equal = x <= y
print(f"Czy {x} jest mniejsze niż lub równe {y}? {result_less_than_or_equal}")

Wynik:

Czy 10 jest równe 5? False
Czy 10 jest różne od 5? True
Czy 10 jest większe niż 5? True
Czy 10 jest mniejsze niż 5? False
Czy 10 jest większe niż lub równe 5? True
Czy 10 jest mniejsze niż lub równe 5? False

Priorytet wykonywania operatorów porównania

Operatory relacyjne mają niższy priorytet niż operatory arytmetyczne.

Operatory logiczne

W Pythonie mamy trzy operatory logiczne:

  • logiczne i (and),
  • logiczne lub (or),
  • logiczne zaprzeczenie (not)
# Przykład 1: Operator AND
liczba_x = 5
liczba_y = 10

if liczba_x > 0 and liczba_y > 0:
    print("Obie liczby są większe od zera.")

# Przykład 2: Operator OR
wartosc_a = 15
wartosc_b = -3

if wartosc_a > 10 or wartosc_b < 0:
    print("Przynajmniej jedna z wartości spełnia warunek.")

# Przykład 3: Operator NOT
jest_slonecznie = True

if not jest_slonecznie:
    print("Nie jest słonecznie.")
else:
    print("Jest słonecznie.")

Wynik:

Obie liczby są większe od zera.
Przynajmniej jedna z wartości spełnia warunek.
Jest słonecznie.

W powyższym przykładzie najpierw zilustrowałem działanie operatora logiczne i. Wyrażenie x > 0 and y > 0 zwraca wartość Prawda, jeżeli x jest większe od zera i y jest większe od zera. Następny kawałek kodu pokazuje działanie operatora lub. Wyrażenie a > 10 or b < 0 zwraca wartość Prawda, jeżeli a jest większe niż 10 lub b jest mniejsze niż 0. Wyrażenie w ostatnim fragmencie, not jest_slonecznie, zwraca Prawdę, jeżeli wartość zmiennej jest równa Fałsz.

Priorytet wykonywania operatorów logicznych

Najwyższy priorytet wykonywania spośród operatorów logicznych ma operator zaprzeczenia, następnie logiczne i, a na końcu mamy operator logiczne lub.

Operatory przypisania

Operatory przypisania służą do nadania wartości zmiennej. W Pythonie mamy następujące operatory należące do tej kategorii:

OperatorOpisSkładnia
=Przypisuje zmiennej wartośćx = 2
+=Zwiększa wartość zmiennej o daną wartośćx += 2
-=Zmniejsza wartość zmiennej o daną wartośćx -= 2
*=Mnoży wartość zmiennej o daną wartośćx *= 2
/=Dzieli wartość zmiennej o daną wartośćx /= 2
%=Przypisuje zmiennej wynik działania operacji modulo (reszty z dzielenia)x %= 2
//=Przypisuje zmiennej wynik dzielenia całkowitegox //= 2
**=Potęguje wartośćx ** 2

Działanie powyższych operatorów zilustrowałem w poniższym przykładzie

# Inicjalizacja zmiennej
x = 2
print("Początkowa wartość x:", x)

# Operator przypisania (=)
x = 2
print("Operator przypisania (=):", x)

# Operator dodawania i przypisania (+=)
x += 2
print("Operator dodawania i przypisania (+=):", x)

# Operator odejmowania i przypisania (-=)
x -= 2
print("Operator odejmowania i przypisania (-=):", x)

# Operator mnożenia i przypisania (*=)
x *= 2
print("Operator mnożenia i przypisania (*=):", x)

# Operator dzielenia i przypisania (/=)
x /= 2
print("Operator dzielenia i przypisania (/=):", x)

# Operator reszty z dzielenia i przypisania (%=)
x %= 2
print("Operator reszty z dzielenia i przypisania (%=):", x)

# Operator dzielenia całkowitego i przypisania (//=)
x //= 2
print("Operator dzielenia całkowitego i przypisania (//=):", x)

# Operator potęgowania i przypisania (**=)
x **= 2
print("Operator potęgowania i przypisania (**=):", x)


Wynik:

Początkowa wartość x: 2
Operator przypisania (=): 2
Operator dodawania i przypisania (+=): 4
Operator odejmowania i przypisania (-=): 2
Operator mnożenia i przypisania (*=): 4
Operator dzielenia i przypisania (/=): 2.0
Operator reszty z dzielenia i przypisania (%=): 0.0
Operator dzielenia całkowitego i przypisania (//=): 0.0
Operator potęgowania i przypisania (**=): 0.0

Operatory przypisania dla operacji bitowych

W Pythonie mamy jeszcze operatory przypisania dla operacji bitowych.

OperatorOpisSkładnia
&=Przypisuje zmiennej wynik działania operacji bitowego ix &= 2
|=Przypisuje zmiennej wynik działania operacji bitowego lubx |= 2
^=Przypisuje zmiennej wynik działania operacji XORx ^= 2
>>=Przypisuje zmiennej wynik działania przesunięcia bitowego w prawox >>= 2
<<=Przypisuje zmiennej wynik działania przesunięcia bitowego w lewox <<= 2

Działanie powyższych operatorów zilustrowałem w poniższym przykładzie.

# Inicjalizacja zmiennej
x = 2
print("Początkowa wartość x:", bin(x))  # bin(x) zwraca reprezentację binarną liczby x

# Operator przypisania (=)
x = 2
print("Operator przypisania (=):", bin(x))

# Operator bitowego AND i przypisania (&=)
x &= 2
print("Operator bitowego AND i przypisania (&=):", bin(x))

# Operator bitowego OR i przypisania (|=)
x |= 4
print("Operator bitowego OR i przypisania (|=):", bin(x))

# Operator bitowego XOR i przypisania (^=)
x ^= 8
print("Operator bitowego XOR i przypisania (^=):", bin(x))

# Operator przesunięcia bitowego w prawo i przypisania (>>=)
x >>= 1
print("Operator przesunięcia bitowego w prawo i przypisania (>>=):", bin(x))

# Operator przesunięcia bitowego w lewo i przypisania (<<=)
x <<= 1
print("Operator przesunięcia bitowego w lewo i przypisania (<<=):", bin(x))

Wynik:

Początkowa wartość x: 0b10
Operator przypisania (=): 0b10
Operator bitowego AND i przypisania (&=): 0b10
Operator bitowego OR i przypisania (|=): 0b110
Operator bitowego XOR i przypisania (^=): 0b1110
Operator przesunięcia bitowego w prawo i przypisania (>>=): 0b111
Operator przesunięcia bitowego w lewo i przypisania (<<=): 0b1110

Operatory tożsamości

Operator is w Pythonie jest używany do porównywania identyczności obiektów, czyli sprawdzania, czy dwa obiekty wskazują na tę samą lokalizację w pamięci komputera.

a = [1, 2, 3]
b = a  # Przypisanie referencji, oba zmienne wskazują na ten sam obiekt w pamięci

print(a is b)  

c = [1, 2, 3]
print(a is c) 

Wynik:

True # ponieważ a i b to ten sam obiekt
False # ponieważ a i c to różne obiekty, nawet jeśli mają te same dane

Widzimy, że operator is różni się od operatora ==, które porównuje wartości zmiennych.

Operatory przynależności

W Pythonie operatory przynależności służą do sprawdzania, czy dana wartość należy do sekwencji. Do dyspozycji mamy dwa operatory: in i not in.

lista = [1, 2, 3, 4, 5]

print(3 in lista)  
print(6 in lista)  

Wynik:

True # ponieważ 3 znajduje się w liście
False # ponieważ 6 nie znajduje się w liście

Operator not in działa analogicznie, z tym że zwraca True, jeśli sekwencja nie zawiera danej wartości.

Operator ternarny

Operator ternarny w Pythonie to krótki sposób zapisu instrukcji warunkowej if-else.

a = 15
b = 20
a = a if a > b else b # Zwróć a jeśli a > b. W przeciwnym razie zwróć b
print(a)  

Wynik:

20 #, ponieważ b > a

Operatory bitowe


W Pythonie operatory bitowe umożliwiają manipulację bitami w liczbach całkowitych. W poniższej tabeli zestawiłem operatory bitowe w Pythonie.

OperatorOpisSkładnia
&AND bitowy – zwraca 1 tylko dla bitów, które są jednocześnie ustawione na 1 w obu zmiennychx & y
|OR bitowy – zwraca 1 dla bitów, które są ustawione na 1 w jednej ze zmiennychx | y
~NOT bitowy – neguje każdy bit, zamieniając 0 na 1 i 1 na 0.~x
^XOR bitowy – zwraca 1 dla bitów, które są ustawione na 1 tylko w jednej ze zmiennychx ^ y
>>Przesunięcie bitowe w prawo – przesuwa bity liczby w prawo o określoną liczbę pozycji,x >> n
<<Przesunięcie bitowe w lewo -przesuwa bity liczby w lewo o określoną liczbę pozycji, wstawiając zera z prawej strony.x << n

Podsumowanie

Z artykułu dowiedziałeś się czym są operatory w Pythonie oraz jak ich używać.