%3 это остаток от деления на 3, а при делении 10 на три у тебя получится 9 и 1 в остатке. поэтому ответ 1
//3 это деление на 3 нацело(без остатка)
а /3 это обычное деление как на калькуляторе
10 / 3 = 3.3333333333333335 - это не вина Питона и всех прочих языков программирования, а проблема двоичной системы счисления, которой мыслит процессор компьютера. В двоичной системе нельзя представить числа 0.3 и 0.7 абсолютно точно. Так что в таких случаях нужно округлять
print(10/3) выведет 3.3333333333333335 - 16 точных цифр и только потом погрешность округления. Результат 10/3 (деление вещественных чисел) - вещественное число, которое ВСЕГДА является приблизительным значением. За подробностями - изучай тему "формат представления вещественных чисел в компьютерах".
10 // 3 - целочисленное деление, которое изучается в начальной школе на уроках арифметики. В Python используется деление с округлением к минус бесконечности (округление к ближайшему целому числу не больше вещественного частного). Так результатом 10 // 3 будет 3 (точное значение частного 3.(3) округляем вниз до целого), а результатом -10 // 3 будет -4 (точное значение частного -3.(3) округляем вниз до целого).
10 % 3 - остаток от деления: точно так же, как ты это делал на уроках арифметики в начальной школе. Формула остатка, используемая в языках программирования: