divmod в Python
01 dec. 14 21:03 03 dec. 19 09:52
Возвращает пару частное-остаток от деления аргументов.
divmod(a, b)
-> tuple(частное, остаток)
a — Число. Делимое.
b — Число. Делитель.
Если аргументы являются разными типами, действуют правила двоичной арифметики.
divmod(1, 2) # (0, 1)
divmod(-1, 2) # (-1, 1)
divmod(-1, -2) # (0, -1)
divmod(1.0, 2) # (0.0, 1.0)
Для целых результат аналогичен (a // b, a % b)
.
Для чисел с плавающей запятой результат аналогичен (q, a % b)
, где q
обычно равен math.floor(a / b)
, однако может быть и на единицу меньше. Так или иначе, q * b + a % b
приближено к a
, если a % b
не нуль, то имеет тот же знак, что и
, и 0 <= abs(a % b) < abs(b)
.
Начиная с +py2.3 оператор не поддерживается комплексными числами. В таких случаях, если применимо, следует получить сначала число с плавающей запятой при помощи функции abs().
Синонимы поиска: divmod
В разделе «Встроенные функции»:
abs
all
any apply ascii
bin
callable
chr
classmethod compile
delattr
dir
enumerate
eval
exec
filter
format
getattr
globals
hasattr
hash
help
hex
id
input
isinstance
issubclass
iter
len
locals
map
max
min
next
oct
open
ord
pow
print reduce repr
reversed
round
setattr
sorted
staticmethod
sum
super vars
zip
Читайте нас в Twitter.
Оператор Mod — Visual Basic
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 3 мин
Делит два числа и возвращает только остаток.
Синтаксис
result = number1 Mod number2
Компоненты
result
Обязательный. Любая числовая переменная или свойство.
number1
Обязательный. Произвольное числовое выражение.
number2
Обязательный. Произвольное числовое выражение.
Поддерживаемые типы
все числовые типы. Сюда входят неподписанные типы и типы с плавающей запятой и Decimal
.
Результат
Результатом будет остаток после
деления на number2
. Например, выражение 14 Mod 4
принимает значение 2.
Примечание
В математике существует разница между остатками и модулями с разными результатами для отрицательных чисел. Оператор Mod
в Visual Basic, оператор платформа .NET Framework op_Modulus
и базовая инструкция rem IL выполняют операцию остатка.
Результат Mod
операции сохраняет знак дивиденда, number1
и поэтому он может быть положительным или отрицательным. Результат всегда находится в диапазоне (-number2
, number2
), монопольно. Пример:
Public Module Example Public Sub Main() Console.WriteLine($" 8 Mod 3 = {8 Mod 3}") Console.WriteLine($"-8 Mod 3 = {-8 Mod 3}") Console.WriteLine($" 8 Mod -3 = {8 Mod -3}") Console.WriteLine($"-8 Mod -3 = {-8 Mod -3}") End Sub End Module ' The example displays the following output: ' 8 Mod 3 = 2 ' -8 Mod 3 = -2 ' 8 Mod -3 = 2 ' -8 Mod -3 = -2
Если или number1
number2
является значением с плавающей запятой, возвращается остаток деления с плавающей запятой. Тип данных результата — это наименьший тип данных, который может содержать все возможные значения, полученные в результате деления на типы number1
данных и
.
Если number1
значение или number2
имеет значение Nothing, оно обрабатывается как ноль.
К связанным операторам относятся следующие:
Оператор \ (Visual Basic) возвращает целочисленное частное деление. Например, выражение
14 \ 4
принимает значение 3.Оператор / (Visual Basic) возвращает полное частное, включая остаток, в виде числа с плавающей запятой. Например, выражение
14 / 4
принимает значение 3,5.
Попытка деления на ноль
Если number2
значение равно нулю, поведение Mod
- Целочисленное деление создает DivideByZeroException исключение, если
number2
не удается определить во время компиляции, и создает ошибкуBC30542 Division by zero occurred while evaluating this expression
во время компиляции, еслиnumber2
вычисляется как нулевое во время компиляции. - Деление с плавающей запятой возвращает Double.NaN.
Эквивалентная формула
Выражение a Mod b
эквивалентно любой из следующих формул:
a - (b * (a \ b))
a - (b * Fix(a / b))
Неточным числом с плавающей запятой
При работе с числами с плавающей запятой помните, что они не всегда имеют точное десятичное представление в памяти. Это может привести к непредвиденным результатам определенных операций, таких как сравнение значений Mod
и оператор . Дополнительные сведения см. в разделе Устранение неполадок с типами данных.
Перегрузка
Оператор Mod
может быть перегружен, что означает, что класс или структура могут переопределить свое поведение. Если код применяется к Mod
экземпляру класса или структуры, которая включает в себя такую перегрузку, убедитесь, что вы понимаете его переопределенное поведение. Для получения дополнительной информации см. Operator Procedures.
Пример 1
В следующем примере оператор используется для Mod
деления двух чисел и возврата только оставшейся части. Если любое из чисел является числом с плавающей запятой, результатом будет число с плавающей запятой, представляющее остаток.
Debug.WriteLine(10 Mod 5) ' Output: 0 Debug.WriteLine(10 Mod 3) ' Output: 1 Debug.WriteLine(-10 Mod 3) ' Output: -1 Debug. WriteLine(12 Mod 4.3) ' Output: 3.4 Debug.WriteLine(12.6 Mod 5) ' Output: 2.6 Debug.WriteLine(47.9 Mod 9.35) ' Output: 1.15
Пример 2
В следующем примере показано потенциальное отсутствие операндов с плавающей запятой. В первом операторе операнды — , а 0,2 — бесконечно повторяющаяся Double
двоичная дробь с сохраненным значением 0,20000000000000001. Во втором операторе символ D
литерального типа приводит оба операнда к Decimal
, а 0,2 имеет точное представление.
firstResult = 2.0 Mod 0.2 ' Double operation returns 0.2, not 0. secondResult = 2D Mod 0.2D ' Decimal operation returns 0.
См. также раздел
- Int
- Fix
- Арифметические операторы
- Порядок применения операторов в Visual Basic
- Список операторов, сгруппированных по функциональному назначению
- Устранение неполадок, связанных с типами данных
- Арифметические операторы в Visual Basic
- Оператор \ (Visual Basic)
Python divmod() (с примерами)
В этом руководстве вы узнаете о методе Python divmod() с помощью примеров.
Метод divmod()
принимает в качестве аргументов два числа и возвращает их частное и остаток в виде кортежа.
Пример
# возвращает частное и остаток от 8/3 результат = divmod(8, 3)
print('Частное и остаток = ',результат) # Вывод: частное и остаток = (2, 2)
divmod() Синтаксис
Синтаксис DivMod ()
IS:
DivMod (number1, number2)
Divmod () Параметры
Дивмод . может быть целым числом или числом с плавающей запятой
divmod() Возвращаемое значение
Метод divmod()
возвращает:
-
(частное, остаток)
— кортеж, содержащий частное и остаток от деления - TypeError — для любого нечислового аргумента
Пример 1: Python divmod() с целочисленными аргументами
# divmod() с целочисленными аргументами print('divmod(8, 3) = ', divmod(8, 3)) # divmod() с целочисленными аргументами print('divmod(3, 8) = ', divmod(3, 8)) # divmod() с целочисленными аргументами print('divmod(5, 5) = ', divmod(5, 5))
Выход
разделмод (8, 3) = (2, 2) divmod(3, 8) = (0, 3) divmod(5, 5) = (1, 0)
Здесь мы использовали метод divmod()
с целочисленными аргументами
-
divmod (8,3)
— вычисляет частное и остаток от 8/ 3 — результат (2, 2) -
divmod (3,8)
— вычисляет частное и остаток от 3/8 — дает (0, 3) -
раздел мод (5,5)
— вычисляет частное и остаток от 5/5 — приводит к (1, 0)
Пример 2: Python divmod() с аргументами типа float
# divmod() с параметрами типа float print('divmod(8. 0, 3) = ', divmod(8.0, 3)) # divmod() с аргументами типа float print('divmod(3, 8.0) = ', divmod(3, 8.0)) # divmod() с аргументами типа float print('divmod(7.5, 2.5) = ', divmod(7.5, 2.5)) # divmod() с аргументами типа float print('divmod(2.6, 0.5) = ', divmod(2.6, 0.5))
Выход
разделмод (8.0, 3) = (2.0, 2.0) divmod(3, 8.0) = (0.0, 3.0) divmod(7.5, 2.5) = (3.0, 0.0) divmod(2.6, 0.5) = (5.0, 0.10000000000000009)
В приведенном выше примере мы использовали метод divmod()
с числами с плавающей запятой. Вот почему мы получаем и частное, и остаток в виде десятичной дроби.
Пример 3: Python divmod() с нечисловыми аргументами
# divmod() со строковыми аргументами a = divmod("Джефф", "Безос")
print('Divmod Джеффа и Безоса = ', a)
Вывод:
TypeError: неподдерживаемые типы операндов для divmod()
В приведенной выше программе мы использовали строковые аргументы, «Джефф»
и «Безос»
с divmod()
.
Следовательно, мы получаем TypeError: неподдерживаемые типы операндов для divmod()
в качестве вывода.
Рекомендуемое чтение:
- Python pow()
- Python каталог()
Функция divmod() в Python — Разделы по масштабированию
Обзор
Функция divmod() , которая является частью стандартной библиотеки Python, принимает два числовых ввода и возвращает частное и остаток от их деления в виде кортежа. divmod Python полезен во многих математических приложениях, таких как определение того, делится ли число или нет, и проверка того, является ли число простым или нет.
Python функция divmod()
Функция divmod() является частью стандартной библиотеки Python. Функция divmod() принимает два числовых ввода, и возвращает частное и остаток от их деления в виде кортежа.
Синтаксис функции Python divmod()
divmod(num1,num2)
Параметры функции Python divmod()
num1
Это числитель . Это может быть целое число или число с плавающей запятой.
номер2
Это знаменатель . Это может быть целое число или число с плавающей запятой.
Возвращаемое значение функции Python divmod()
Функция divmod Python возвращает кортеж (частное, остаток), содержащий частное и остаток от деления.
Исключения функции Python divmod()
- Если в divmod Python передаются нечисловые аргументы, такие как строки, объекты и т. д., функция divmod() возвращает TypeError .
- Если в качестве первого аргумента передается 0, divmod Python возвращает (0,0)
- Если в качестве второго аргумента передается 0, divmod Python возвращает ошибку Zero Division .
Как работает функция divmod() в Python?
Метод divmod Python принимает два параметра , num1 и num2, где num1 — числитель, а num2 — знаменатель. Метод divmod Python вычисляет и возвращает частное как num1//num2 и остаток как num1%num2 в виде кортежа.
Обратите внимание, что метод divmod Python вычисляет деление с помощью оператора // . Следовательно, вся часть частного возвращается методом divmod. Давайте посмотрим, как работает оператор // для целых чисел и чисел с плавающей запятой.
Если num1 и num2 являются целыми числами
7//2 вернет 3. Как и при делении 7 на 2, частное равно 3,5, а вся часть частного равна 3.
Если num1 или num2 является числом с плавающей запятой,
7,5//3 вернет 2,0. Как и при делении 7,5 на 3, частное равно 2,5, а вся часть частного равна 2,0.
Использование функции divmod()?
- Мы можем использовать метод divmod(), чтобы проверить, является ли число простым. Мы можем выполнить итерацию по числам в диапазоне [1, число] и можем подсчитать числа, в которых остаток равен 0. Если число простое, то этот счет должен быть равен 2 (один для числа 1 и один для самого числа) . Если количество > 2, мы можем сказать, что число не простое, иначе число простое.
- Мы также можем проверить, делится ли число или нет. Если в остатке 0, то число делится, иначе число не делится.
Примеры функций Python divmod()
Возьмем 10 в качестве числителя и 2 в качестве знаменателя. Частное должно быть 5, а остаток должен быть 0.
x = divmod(10, 2) print('divmod(10, 2) =',x) print('Возвращаемое значение', type(x))
Вывод:
divmod(10, 2) = (5, 0) Возвращаемое значение: <класс 'tuple'>
Как видно из вывода, возвращаемое значение представляет собой кортеж, состоящий из 5 и 0. Где 5 — частное, а 0 — остаток.
Python divmod() с целочисленными аргументами
Давайте рассмотрим еще один пример с числителем 11 и знаменателем 3.
x = divmod(11, 3) print('divmod(11, 3) =',x)
Вывод:
divmod(11, 3) = (3, 2)
Теперь попробуем передать 0 в качестве знаменателя.
х = делитель (11, 0) print('divmod(11, 0) =',x)
Вывод:
Трассировка (последний последний вызов): Файл "", строка 1, в ZeroDivisionError: целочисленное деление или по модулю на ноль
Как видно из вывода, divmod Python возвращает ZeroDivisionError.
Python divmod() с аргументами типа Float
# числитель как число с плавающей запятой print('divmod(12.0, 3) =',divmod(12.0, 3)) # знаменатель в виде числа с плавающей запятой print('divmod(15, 5.0) =',divmod(15, 5.0)) # числитель и знаменатель в виде числа с плавающей запятой print('divmod(15.5, 3.1) =',divmod(15.5, 3.1))
Вывод:
divmod(12.0, 3) = (4.0, 0.0) divmod(15, 5.0) = (3.0, 0.0) divmod(15.5, 3.1) = (4.0, 3.09999999999999996)
Во всех приведенных выше случаях один или оба аргумента divmod Python являются числами с плавающей запятой, поэтому метод divmod() возвращает частное и остаток в виде десятичных чисел .
Python divmod() с нечисловыми аргументами
Теперь давайте попробуем передать нечисловые аргументы в метод divmod(). Мы пройдем строка в качестве числителя и знаменателя.
x = divmod("Python", "Scaler") print('Divmod Python и Scaler равен =', x)
Вывод:
Трассировка (последний последний вызов): Файл "", строка 1, в TypeError: неподдерживаемые типы операндов для divmod(): 'str' и 'str'
Как видно из вывода, в методе divmod() передаются неподдерживаемые аргументы.
- pow() в Python
- dir() в Python
Заключение
- Функция divmod() принимает два числовых входа и возвращает частное и остаток от их деления в виде кортежа .
- Если в divmod Python передаются нечисловые аргументы, такие как строки, объекты и т. д., функция divmod() вернет TypeError .
Leave A Comment