Python [MK, 19/20]
Lekcja 4. Systemy liczbowe   Zmienne
Operatory

Operatory

Podstawowe operatory arytmetyczne w języku Python

  • + – dodawanie
  • - – odejmowanie
  • * – mnożenie
  • / – dzielenie
  • // – dzielenie z zaokrągleniem
  • % – reszta z dzielenia
  • ** – potęgowanie

Wynik dodawania, odejmowania i mnożenia zależy od liczb jakie użyjemy do tych operacji: jeśli będą to liczby całkowite , to wynik też będzie liczbą całkowitą. Wykonując poniższe działania otrzymamy wyniki: -9, 9.0, 9, 6 i 6.0.

print(-5 - 4)
print(5. + 4)
print(5 - -4)
print(2 * 3)
print(2 * 3.)

Operator dzielenia / zawsze zwróci wynik będący liczbą zmiennoprzecinkową. Jeżeli chcemy tego uniknąć, to należy użyć operatora // oraz dzielna i dzielnik powinny być liczbami całkowitymi. Przykłady dzielenia:

print(15 / 5)
print(15 / 5.)
print(15 // 5)
print(15. // 5.)
print(15 // .5)
print(-15. // -5)
Wyniki:
3.0
3.0
3
3.0
30.0
3.0

Stosując operator dzielenia z zaokrągleniem // musimy jednak pamiętać o tym, że wynik zawsze zostanie zaokrąglony do mniejszej liczby całkowitej. Przykłady:

print(15 // 6)
print(15 // 4)
print(15. // 4)
Wyniki powyższych działań:
2
3
3.0

Operatorem zwracającym resztę z dzielenia jest znak procentu %. Przy jego używaniu obowiązuje wspomniana już wcześniej zasada: wynik całkowity, gdy oba czynniki są całkowite; w przeciwnym razie wynik będzie zmiennoprzecinkowy.

print(15 % 5)
print(15. % 5.)
print(-15 % .5)
print(-15. % -5)
W wyniku tych działań otrzymamy następujące wyniki (zwróć uwagę na minusy):
0
0.0
0.0
-0.0

Operatorem potęgowania w języku Python jest podwójna gwiazdka **. Również obowiązuje tu zasada, że jeśli oba argumenty potęgowania są całkowite, to wynik będzie liczbą całkowitą. Natomiast jeśli przynajmniej jeden argument będzie liczbą zmiennoprzecinkową, to wynik również będzie liczbą zmiennoprzecinkową.

Skoro wykładnik może być liczbą zmiennoprzecinkową, to za pomocą potęgowania możemy wykonywać pierwiastkowanie. Spójrzmy na poniższe przykłady potęgowania i ich wyniki:

print(2 ** 5)
print(2. ** 5)
print(16. ** .25)
print(64 ** .5)
32
32.0
2.0
8.0

Priorytety operatorów

Priorytety operatorów w języku Python są identyczne z tymi używanymi w obliczeniach matematycznych.

  1. dodawanie +, odejmowanie -
  2. potęgowanie **
  3. mnożenie *, dzielenie /, reszta z dzielenia%

Oczywiście korzystając z nawiasów, zawsze możemy zmienić kolejność wykonywania działań, ale kilka działań ujętych w jeden nawias, zawsze będzie stosowało się do powyższych zasad.

Większość operatorów w Pythonie korzysta z zasady łączenia lewostronnego, tzn. działania z tymi operatorami wykonywane są od lewej do prawej strony. Jeżeli w jednym zapisie znajdą się operatory o tym samym priorytecie, to również działania zostaną wykonane zgodnie z kolejnością od lewej do prawej. Na przykład taki kod print(3 * 7 % 2) zwróci wynik 1, ponieważ 3 · 7 = 21 a reszta z dzielenia 21 przez 2 wynosi 1.

Wyjątkiem od zasady łączenia lewostronnego jest potęgowanie. Tu działania na wielu argumentach wykonujemy zawsze od prawej do lewej strony. Przykład: print(1 ** 2 ** 3) zwróci wynik 1, bo 23 = 8 a 18 = 1.

Operatory arytmetyczne i ciągi znaków

Dwa, spośród operatorów arytmetycznych, możemy używać ze zmiennymi typu string. Jest to operator dodawania +, który zastosowany do dwóch lub więcej zmiennych znakowych, łączy je w jeden ciąg:

imie = input("Podaj swoje imię: ")
nazwisko = input("Podaj również swoje nazwisko:  ")
print("\n")
print("Nazywasz się " + imię" " + nazwisko + ".")

Mamy zatem do czynienia z konkatenacją (łączeniem) zmiennych znakowych. Drugim operatorem jaki możemy używać w połączeniu z ciągiem znaków, jest operator mnożenia *. Operator ten, w połączeniu z ciągiem znaków i liczbą, powiela ciąg tyle razy ile wynosi wartość liczby. Przykłady:

print("ku" * 2)
print(3 * "Ho! ")
print("2" * 4)
kuku
Ho! Ho! Ho! 
2222

Operator replikacji znaków można wykorzystać do rysowania prostych figur geometrycznych z wykorzystaniem pojedynczych znaków:

print("+" + 10 * "-" + "+")
print(("|" + " " * 10 + "|\n") * 3, end="")
print("+" + 10 * "-" + "+")
+----------+
|          |
|          |
|          |
+----------+

2020-06-28 16:06:53 2022-10-12 01:00:00


© 2024 Młody Informatyk v. 0.1.7717