Как я могу найти остаток от деления числа в Python?
Например:
если число равно 26, а разделенное число равно 7, то остаток от деления равен 5.
(так как 7 + 7 + 7 = 21 и 26-21 = 5).
Как я могу найти остаток от деления числа в Python?
Например:
если число равно 26, а разделенное число равно 7, то остаток от деления равен 5.
(так как 7 + 7 + 7 = 21 и 26-21 = 5).
Ответы:
Вы ищете оператора по модулю:
a % b
например:
26 % 7
Конечно, может быть, они хотели, чтобы вы реализовали это сами, что также не было бы слишком сложно.
-10 % 3 == 2
. Однако a/b*b + a%b == a
все еще остается верным, поскольку python всегда округляется к -Infinity, в отличие от некоторых других языков, которые округляются к 0, но возвращают -1.
%
выполняет истинный модуль, который возвращает значения в диапазоне [0, divisor)
и хорошо сочетается с разделением по этажам (к отрицательной бесконечности). Языки C используют %
оператор для операций с остатками, который возвращает значения в диапазоне (-divisor, divisor)
и хорошо сочетается со стандартным делением (к нулю).
26% 7 (вы получите остаток)
26/7 (у вас получится делитель, может иметь значение с плавающей запятой)
26 // 7 (делитель получит только целое значение))
В Python 3.7 появилась новая math.remainder()
функция:
from math import remainder
print(remainder(26,7))
Вывод:
-2.0 # not 5
Обратите внимание, как и выше, это не то же самое, что %
.
Цитирование документации :
математика остаток (х, у)
Верните остаток x в стиле IEEE 754 относительно y. Для конечного x и конечного ненулевого y это разность x - n * y, где n - ближайшее целое число к точному значению фактора x / y. Если x / y находится точно посередине между двумя последовательными целыми числами, ближайшее четное целое число используется для n. Таким образом, остаток r = остаток (x, y) всегда удовлетворяет abs (r) <= 0.5 * abs (y).
Особые случаи следуют IEEE 754: в частности, остаток (x, math.inf) равен x для любого конечного x, а остаток (x, 0) и остаток (math.inf, x) вызывают ValueError для любого не NaN x. Если результат операции остатка равен нулю, этот ноль будет иметь тот же знак, что и x.
На платформах, использующих двоичную с плавающей точкой IEEE 754, результат этой операции всегда точно представлен: ошибка округления не вводится.
Issue29962 описывает обоснование для создания новой функции.
Используйте% вместо /, когда вы делите. Это вернет остаток для вас. Так что в вашем случае
26 % 7 = 5
Модуло будет правильным ответом, но если вы делаете это вручную, это должно сработать.
num = input("Enter a number: ")
div = input("Enter a divisor: ")
while num >= div:
num -= div
print num
Мы можем решить это с помощью оператора модуля (%)
26% 7 = 5;
но 26/7 = 3, потому что это даст частное, а оператор% даст остаток.
Вы можете найти остаток с помощью оператора по модулю. Пример
a=14
b=10
print(a%b)
Будет печатать 4
Если вы хотите получить остаток от своей проблемы деления, просто используйте действительные правила остатка, как в математике. Конечно, это не даст вам десятичный вывод.
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 очевидно.
valone/valtwo
к Int. иначе это приведет к числу с плавающей точкой.
Вы можете определить функцию и вызвать ее остаток с двумя значениями, такими как rem (номер1, номер2), который возвращает число1%, число2, затем создать время и установить его в значение true, затем распечатать два ввода для вашей функции, содержащей числа 1 и 2, и затем напечатать (rem (число1, число2)