Wstęp. Do czego służy reszta z dzielenia?
Dzielenie z resztą jest jedną z podstawowych operacji w matematyce i programowaniu. W języku Python podobnie jak w wielu innych językach programowania, mamy do dyspozycji operator do obliczania reszty z dzielenia, znany jako operator modulo (%). W tym artykule przyjrzymy się, jak działa ten operator, kiedy może być użyteczny oraz omówimy kilka praktycznych przykładów jego zastosowania.
Operator modulo (%)
Operator %
w Pythonie zwraca resztę z dzielenia dwóch liczb. Jest to bardzo prosta, ale ważna operacja, którą można zastosować w wielu różnych sytuacjach. Oto podstawowa składnia:
reszta = a % b
Gdzie a
i b
to liczby, które chcemy podzielić, a reszta
to wynik, czyli reszta z dzielenia a
przez b
.
Przykładowe obliczenia:
print(10 % 3) # Wynik: 1
print(14 % 4) # Wynik: 2
print(20 % 5) # Wynik: 0
Zastosowanie dzielenia z resztą w Pythonie
Sprawdzanie, czy liczba jest parzysta
Jednym z najczęstszych zastosowań operatora modulo jest sprawdzanie, czy liczba jest parzysta czy nie. Liczba jest parzysta, jeśli reszta z jej dzielenia przez 2 wynosi 0.
liczba = 10
if liczba % 2 == 0:
print("Liczba jest parzysta.")
else:
print("Liczba jest nieparzysta.")
Wykonywanie operacji co n-ty raz
for x in range(100):
if x % 9 == 0:
print(x) # Wydrukuje co 9 liczbę
Unikanie błędów przy dzieleniu przez zero
Podczas pracy z operatorem modulo (%
) w Pythonie, ważne jest, aby unikać błędów związanych z dzieleniem przez zero. Ponieważ jest to operacja niedozwolona w matematyce i w programowaniu, spowoduje zgłoszenie wyjątku ZeroDivisionError
. Aby temu zapobiec, można skorzystać z obsługi wyjątków w Pythonie.
Załóżmy, że mamy funkcję, która wykonuje operację modulo na dwóch liczbach:
def modulo(a, b):
return a % b
# Przykłady użycia
print(modulo(10, 3)) # Wynik: 1
print(modulo(10, 0)) # Wynik: Błąd: próba dzielenia przez zero!
print(modulo(10, 4)) # Wynik: 2
Ponieważ w linii 6 dzielimy przez 0, to wywołanie funkcji modulo
spowoduje przerwanie działania programu i wyświetlenie ZeroDivisionError
:
1
ZeroDivisionError: integer modulo by zero
Funkcję modulo
zmodyfikujemy, korzystając z obsługi wyjątków, aby uniknąć przerwania wykonywania programu w sposób następujący:
def safe_modulo(a, b):
try:
return a % b
except ZeroDivisionError:
return "Błąd: próba dzielenia przez zero!"
# Przykłady użycia
print(safe_modulo(10, 3)) # Wynik: 1
print(safe_modulo(10, 0)) # Wynik: Błąd: próba dzielenia przez zero!
print(safe_modulo(10, 4)) # Wynik: 2
Dzięki temu program nie przerwie działania i wyświetli wynik:
1
Błąd: próba dzielenia przez zero!
2
Operator dzielenia całkowitego
Operator dzielenia całkowitego (//
) w Pythonie służy do dzielenia dwóch liczb i zwracania całkowitej części wyniku.
Przykłady:
wynik = 10 // 3 # Wynik: 3
wynik = 10.5 // 3 # Wynik: 3.0
wynik = -10 // 3 # Wynik: -4
Inne operatory arytmetyczne
Oprócz operatora modulo Python oferuje również następujące operatory arytmetyczne:
- Dodawanie (
+
) - Odejmowanie (
-
) - Mnożenie (
*
) - Dzielenie (
/
) - Potęgowanie (
**
)
Operatory arytmetyczne, logiczne, jak i inne opisano w artykule Python: operatory.