Найти остаток от деления числа
Как я могу найти остаток от деления числа в Python?
например:
Если число равно 26, а разделенное число равно 7, то остаток от деления равен 5.
(с 7+7+7=21 и 26-21=5.)
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 очевидно.