PROGRAMOWANIE I ALGORYTMY

Operatory w Pythonie


powrót

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

Operatory arytmetyczne służą do wykonywania wszelkiego rodzaju działań na liczbach takich jak:

  • "+" - dodawanie,
  • "-" - odejmowanie,
  • "*" - mnożenie,
  • "/" - dzielenie,
  • "//" - dzielenie całkowite,
  • "%" - reszta z dzielenia dwóch liczb całkowitych,
  • "**" - potęgowanie.
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 

Operatory logiczne

Mają zastosowanie w miejscach, gdzie występują różnego rodzaju warunki — głównie w pętlach i instrukcjach warunkowych. Do operatorów logicznych zaliczamy:

  • or lub logiczne,
  • andi logiczne,
  • not — zaprzeczenie.

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

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:

  • "<" - mniejszy
  • ">" - większy
  • "<=" - mniejszy równy
  • ">=" - większy równy
  • "==" - równy
  • "!=" - nie równy

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

Operatory przypisania

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 identycznościowe

Operatory te określają, czy dwie zmienne przechowują ten sam obiekt. Wyróżniamy dwa operatory identycznościowe:

  • is
  • not is

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

Wyjście:

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

Wyjście:

obiekt x jest typem str
obiekt x jest typem int

Operatory przynależnosci

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:

  • in
  • not in

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)

Wyjście

wyraz 'ma' występuje w ciągu 'ala ma kota'
Liczba 4 występuje w zbiorze [2, 3, 4, 100]

Operatory bitowe

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.