По определению деления. Школа 3 класс.
Когда мы делим - мы отвечаем на вопрос "сколько раз от делимого нужно отнять делитель, чтобы получился 0". Остаток - это то что лишнее остаётся, что уже отнять мы не можем, не уйдя в минус.
Остаток всегда больше нуля.
При делении отрицательного числа на целое - мы наоборот прибавляем делитель к делимому, пока мы не получим 0 или положительное число.
Более формально это выглядит так:
Для любых целых чисел a и b, причём b != 0, найдётся единственная пара целых чисел q и r, таких что a = q * b + r, где 0 <= r < |b|.
a - делимое
b - делитель
q - частное (целое)
r - остаток
Вот и получается
1 = 0 * 5 + 1
-1 = -1 * 5 + 4
UPD: в python это не совсем так. На самом деле в Python действительно релизован mod, как говорит
Rsa97, но у этой операции нет чёткого определения, по тому в разных языках оно реализовано по разному:
https://en.wikipedia.org/wiki/Modulo
q = floor(a/b)
r = a - b*q
В первом случае: q=0, r=1
Во втором: q=-1,r=4
(в принципе то же самое)
Интересное начинается, если делитель отрицательный:
Если взять a=1, b=-5, то тогда r=-1, q=-4
А вот при обычном делении с остатком: r=0, q=1