Przejdź do treści
Strona główna » Blog » Python – reszta z dzielenia

Python – reszta z dzielenia

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:

Python
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.

Python
liczba = 10
if liczba % 2 == 0:
    print("Liczba jest parzysta.")
else:
    print("Liczba jest nieparzysta.")

Wykonywanie operacji co n-ty raz

Python
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:

Python
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:

Python
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:

Python
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.