Найти остаток от деления числа


Как я могу найти остаток от деления числа в Python?

например:
Если число равно 26, а разделенное число равно 7, то остаток от деления равен 5.
(с 7+7+7=21 и 26-21=5.)

10 91

10 ответов:

вы ищете оператор по модулю:

a % b

например:

26 % 7

конечно, может быть, они хотели, чтобы вы реализовали его самостоятельно, что тоже не было бы слишком сложно.

остаток деления можно обнаружить с помощью оператора %:

>>> 26%7
5

в случае, если вам нужно как частное, так и по модулю, есть встроенный :

>>> seconds= 137
>>> minutes, seconds= divmod(seconds, 60)

26 % 7 (вы получите остаток)

26 / 7 (вы получите делитель может быть значение типа float )

26 / / 7 (вы получите только целочисленное значение делителя))

Если вы хотите избежать по модулю, вы также можете использовать комбинацию из четырех основных операций:)

26 - (26 // 7 * 7) = 5

из Python 3.7, есть новый math.remainder() функция:

from math import remainder
print(remainder(26,7))

со ссылкой на документация:

математика.остаток(x, y)

возвращает остаток в стиле IEEE 754 от x с помощью уважение к y. для конечного x и конечного ненулевого y это разность x-n*y, где n-ближайшее целое число к точному значению фактора x/ y. если x / y находится ровно на полпути между двумя последовательные целые числа, ближайшее четное целое число используется для n. остаток r = остаток(x, y) таким образом, всегда удовлетворяет abs (r)

особые случаи следуют IEEE 754: в частности, остаток (x, math.бесконечность) является x для любого конечного x, а остаток (x, 0) и остаток(математика.inf, x) поднять ValueError для любого не-NaN x. Если результат остатка операция равна нулю, этот ноль будет иметь тот же знак, что и x.

на платформах, использующих IEEE 754 двоичный с плавающей запятой, результат этот операция всегда точно представима: ошибка округления отсутствует введенный.

Issue29962 описывает причины для создания новой функции.

по модулю будет правильным ответом, но если вы делаете это вручную, это должно работать.

num = input("Enter a number: ")
div = input("Enter a divisor: ")

while num >= div:
    num -= div
print num

используйте % вместо / при разделении. Это вернет остаток для вас. Так что в вашем случае

26 % 7 = 5

Я бы предложил посмотреть по модулю оператор

мы можем решить эту проблему с помощью оператора модуля (%)

26 % 7 = 5;

но 26 / 7 = 3, потому что это даст частное, но оператор % даст остаток.

если вы хотите, чтобы остальная часть вашей проблемы деления, просто используйте фактические правила остатка, как и в математике. Конечно, это не даст вам десятичный вывод.

valone = 8
valtwo = 3
x = valone / valtwo
r = valone - (valtwo * x)
print "Answer: %s with a remainder of %s" % (x, r)

если вы хотите сделать это в формате, калькулятор, просто заменить valone = 8 с valone = int(input("Value One")). Сделайте то же самое с valtwo = 3, но разные vairables очевидно.