W Pythonie wyróżniamy kilka rodzajów operatorów. W większości zasada ich stosowania jest taka sama jak w C++. W zależności od sytuacji, w której mają zastosowanie, dzielimy na kilka grup:
Operatory arytmetyczne służą do wykonywania wszelkiego rodzaju działań na liczbach takich jak:
a = 5
b = 3
c = a / b
print(c) # zostanie wypisane 1.6666666666666667
c = a // b
print(c) # zostanie wypisane 1 — część całkowita z dzielenia 5 przez 3
c = a ** b
print(c) # zostanie wypisany wynik 5 do potęgi 3 = 125
Mają zastosowanie w miejscach, gdzie występują różnego rodzaju warunki — głównie w pętlach i instrukcjach warunkowych. Do operatorów logicznych zaliczamy:
Lub logiczne zwraca prawdę, gdy przynajmniej jeden z warunków jest prawdziwy, w przeciwnym razie zwraca fałsz.
Logiczne i zwraca prawdę w przypadku, gdy wszystkie warunki są prawdziwe, w przeciwnym razie zwraca fałsz.
Logiczne nie zaprzecza otrzymaną wartość z True na False oraz z False na True .
Prześledźmy przykłady:
n = 5
k = 7
print(n > 3 or k > 10) # zostanie wypisane True, ponieważ przynajmniej jeden warunek musi mieć wartość logiczną True (musi być prawdziwy)
print(n > 3 and k > 10) # zostanie wypisane False, ponieważ wszystkie warunki muszą mieć wartość logiczną True
print(not(n > 3 and k > 10)) # zostanie wypisane True, ponieważ zaprzeczamy wartość logiczną False, którą otrzymujemy z warunków (n > 3 and k > 10)
Operatory relacyjne stosujemy w sytuacje, gdzie jest potrzeba porównania dwóch elementów. Najczęściej używane są w instrukcjach warunkowych i iteracyjnych. Wyróżniamy:
Warto wspomieć, że Python pozwala na zapis tego typu:
a = 5
if 4 <= a <= 6:
print("wartość zmiennej a mieści się w przedziale [4..6]")
Przykładowe zastosowanie:
a = 5
b = 5
if a == b:
print("wartości zmiennych a i b są takie same")
a = 11
if a != b:
print('wartości zmiennych a i b są różne')
Przypisanie polega na nadaniu wartości dla zmiennej znajdującej się po lewej stronie, wartości znajdującej się po stronie prawej. Dla takiej zmiennej można bezpośrednio nadać wartość, przekazać wartość z innej zmiennej lub wartość może zostać nadana poprzez wcześniejsze wykonanie pewnych operacji. Podstawowym operatorem przypisania jest "=".
a = 45 # przypisanie liczby 45 do zmiennej a
print(a)
b = a # przypisanie do zmiennej b wartości przechowywanej przez zmienną a, czyli liczbę 45
print(b)
a = 2 ** 10 # przypisanie do zmiennej a wyniku działania 2 do potęgi 10 = 1024
print(a)
Podobnie jak w C++, przypisanie można wykonać, poprzedzając je pewną operacją.
Operację przypisania połączoną z pewną operacją matematyczną na wartości zmiennej można przedstawić w następujący sposób:
zmienna [operator matematyczny][=] wartość;
Aby lepiej zrozumieć powyższą notację, prześledźmy przykłady:
a = 45
print(a)
a += 10 # zwiększenie wartości zmiennej a o 10 (teraz a = 55)
print(a)
a -= 50 # zmniejszenie wartości zmiennej a o 50 (teraz a = 5)
print(a)
a **= 3 # wykonanie potęgowania 5 do 3 i zapisanie wyniku w zmiennej a (teraz a = 125)
print(a)
a //= 30 # wykonanie dzielenia całkowitego 125 // 30 = 4 (teraz a = 4)
# itd.
Operatory te określają, czy dwie zmienne przechowują ten sam obiekt. Wyróżniamy dwa operatory identycznościowe:
x = "ala ma kota"
y = "ala nie ma kota"
if x is not y:
print("Obiekty x i y to nie te same obiekty")
x = y
if x is y:
print("Obiekty x i y to te same obiekty")
Obiekty x i y to nie te same obiekty
Obiekty x i y to te same obiekty
Operatorem is (not is) możemy także sprawdzić, czy dany obiekt jest oczekiwanym typem np.:
x = "ala ma kota"
y = 25
if type(x) is str:
print("obiekt x jest typem str")
if type(y) is int:
print("obiekt x jest typem int")
obiekt x jest typem str
obiekt x jest typem int
Operatory tego typu sprawdzają, czy dany element zawiera się w podzbiorze wartości danego obiektu. Podobnie jak w operatorach identycznościowych mamy dwa takie operatory:
x = "ala ma kota"
if "ma" in x:
print("wyraz 'ma' występuje w ciągu'",x,"'")
y = [2, 3, 4, 100]
if 4 in y:
print("Liczba 4 występuje w zbiorze",y)
else:
print("Liczba 4 nie występuje w zbiorze",y)
wyraz 'ma' występuje w ciągu 'ala ma kota'
Liczba 4 występuje w zbiorze [2, 3, 4, 100]
Operatory, o których mowa, wykonują operacje bezpośrednio na reprezentacji bitowej danej zmiennej bez znaczenia jakiego jest typu.
Operatory bitowe opisane zostały w tym miejscu.