Модуль от деления числа python

Оператор modulo(%) в Python: как использовать

Оператор по модулю в Python считается арифметической операцией, наряду с +, -, /, *, **, //. Оператор modulo (%) используется в Python для получения остатка после деления.

Оператор по модулю(%) в Python

modulo — это встроенный оператор, который возвращает остаток от деления левого операнда на правый операнд. Он используется, чтобы получить оставшуюся часть задачи деления.

Когда вы видите символ %, вы можете подумать о «процентах». Но в большинстве языков программирования это означает другое. Например, символ % в Python называется оператором по модулю.

Оператор modulo (%) дает остаток от деления первого аргумента на второй. Числовые аргументы сначала преобразуются в стандартный тип. Аргумент с нулевым правом вызывает исключение ZeroDivisionError.

Аргументы могут быть плавающими числами, например, 3,14%0,7 равно 0,34(поскольку 3,14 равно 4*0,7 + 0,34).

Оператор modulo (%) всегда дает результат с тем же знаком, что и его второй операнд(или ноль); абсолютное значение результата строго меньше абсолютного значения второго операнда [2].

Читайте также:  Tracking system in php

Во многих языках программирования оба операнда этого оператора по модулю должны быть целыми числами. Но оператор Python Modulo в этом случае является гибким. Операнды могут быть либо целыми числами, либо числами с плавающей запятой.

Выражение типа %b оценивает остаток от a ÷ b. Технически это «модуль», а не «напоминание», поэтому результаты могут отличаться при сравнении с другими языками, где % — оператор остатка.

Источник

Python Modulo — оператор %

Оператор модуля Python (%) используется для получения остатка от деления. Операция по модулю поддерживается для целых чисел и чисел с плавающей запятой.

Синтаксис оператора по модулю: a % b . Здесь «a» — дивиденд, а «b» — делитель. Результат — это остаток от деления a на b.

Если и «a», и «b» являются целыми числами, то остаток также является целым числом. Если одно из них является числом с плавающей запятой, результатом также будет число с плавающей запятой.

Пример оператора модуля Python

Давайте посмотрим на несколько примеров оператора по модулю.

1. По модулю с целыми числами

2. По модулю с поплавком

3. Модульное с пользовательским вводом.

x = input("Please enter first number:\n") fx = float(x) y = input("Please enter first number:\n") fy = float(y) print(f' % = ')

Python Modulo оператор

Когда мы получаем данные, введенные пользователем, они имеют форму строки. Мы используем встроенную функцию float() для преобразования их в числа с плавающей запятой. Вот почему остаток равен 1,0, а не 1.

4. Пример ZeroDivisionError

Если делитель равен 0, оператор по модулю выдаст ZeroDivisionError . Мы можем использовать блок try-except, чтобы поймать ошибку.

ZeroDivisionError

5. По модулю с отрицательными числами

Оператор модуля Python всегда возвращает остаток, имеющий тот же знак, что и делитель. Это может привести к путанице с выводом.

6. Python Modulo math.fmod()

Поведение оператора% с отрицательными числами отличается от поведения библиотеки C. Если вы хотите, чтобы операция по модулю велась как программирование на C, вам следует использовать функцию fmod() математического модуля. Это рекомендуемая функция для получения чисел с плавающей запятой по модулю.

>>> import math >>> math.fmod(-5, 3) -2.0 >>> math.fmod(5, -3) 2.0 >>> math.fmod(-10, 3) -1.0 >>>
  • fmod (-5, 3) = fmod (-2 -1 * 3, 3) = -2,0
  • fmod (5, -3) = fmod (2-1 * -3, -3) = 2,0
  • fmod (-10, 3) = fmod (-1-3 * 3, 3) = -1,0

Перегрузка оператора по модулю

Мы можем перегрузить оператор по модулю, реализовав __mod__() в нашем определении класса.

class Data: def __init__(self, i): self.id = i def __mod__(self, other): print('modulo function called') return self.id % other.id def __str__(self): return f'Data[]' d1 = Data(10) d2 = Data(3) print(f' % = ')
modulo function called Data[10] % Data[3] = 1

Коротко о проблемах арифметики с плавающей запятой

Мы используем двоичный формат для хранения значений в компьютерах. Что касается дробей, в большинстве случаев мы не можем представить их в точности как двоичные дроби. Например, 1/3 не может быть представлена в точном двоичном формате, и это всегда будет приблизительное значение.

Вот почему вы можете получить неожиданные результаты при выполнении арифметических операций с числами с плавающей запятой. Это ясно из вывода нижеприведенных операций по модулю.

На выходе должно быть 0, потому что 3,2 * 3 равно 9,6. Но значения долей с плавающей запятой не представлены точно, и приближение вызывает эту ошибку. Это тоже видно из этого примера.

Таким образом, вы должны проявлять особую осторожность при работе с числами с плавающей запятой. Желательно выполнить округление, а затем сравнить только два числа с плавающей запятой.

>>> round(9.6, 3) == round(3.2 * 3, 3) True

Источник

Оператор модуля: modulo Python – примеры получения остатка

Как и в других языках программирования, оператор модуля Python выполняет ту же работу по нахождению модуля заданного числа. Оператор представляет собой математический символ, используемый для выполнения различных операций, таких как(+, -, * /) сложение, вычитание, умножение и деление над заданными двумя числами, чтобы вернуть результат в виде целого числа, а также числа с плавающей запятой.

Оператор указывает компилятору выполнить определенные действия на основе переданного символа оператора для данного числа.

Оператор модуля Python

Оператор модуля

Оператор модуля Python – это встроенный оператор, который возвращает оставшиеся числа путем деления первого числа на второе. Он также известен как Python modulo. В Python символ модуля представлен в виде символа процента(%). И называется он оператором остатка.

Ниже приведен синтаксис для получения остатка путем деления первого числа на второе.

Здесь X и Y – два целых числа, а модуль(%) используется между ними, чтобы получить остаток, где первое число(X) делится на второе число(Y).

Например, у нас есть два числа, 24 и 5. И мы можем получить остаток, используя модуль или оператор по модулю между числами 24% 5. Здесь 24 делится на 5, что возвращает 4 в качестве остатка и 4 в качестве частного. Когда первое число полностью делится на другое число, не оставляя остатка, результатом будет 0.

Получение остатка двух целых чисел с помощью цикла while

Давайте напишем программу для получения остатка от двух чисел, используя цикл while и оператор модуля(%) в Python.

while True: # if the while condition is true if block is executed a = input('Do you want to continue or not(Y / N)? ') if a.upper() != 'Y': # If the user pass 'Y', the following statement is executed. break a = int(input(' First number is: ')) # first number b = int(input(' Second number is: ')) # second number print(a, ' % ', b, ' = ', a % b) # perform a % b print(b, ' % ', a, ' = ', b % a) # perform b % a
Do you want to continue or not(Y / N)? Y First number is: 37 Second number is: 5 37 % 5 = 2 5 % 37 = 5 Do you want to continue or not(Y / N)? Y First number is: 37 Second number is: 5 24 % 5 = 4 5 % 24 = 5 Do you want to continue or not(Y / N)? Y First number is: 37 Second number is: 5 28 % 5 = 3 5 % 28 = 5

Остаток двух чисел с плавающей запятой

Напишем программу, чтобы найти остаток от двух целых чисел, используя оператор модуля в Python.

x = float(input('First number: ')) y = float(input(' Second number: ')) res = x % y # store the remainder in res variable print("Modulus of two float number is: ", x, "%", y, " = ", res, sep = " ")
First number: 40.5 Second number: 20.5 Modulus of two float number is: 40.5 % 20.5 = 20.0

Отрицательного числа

Давайте напишем программу, чтобы получить остаток от двух отрицательных чисел, используя цикл while и оператор модуля(%) в Python.

while True: x = input(' Do you want to continue(Y / N)? ') if x.upper() != 'Y': break # input two integer number and store it into x and y x = int(input(' First number: ')) y = int(input(' Second number: ')) print("Modulus of negative number is: ", x, "%", y, " = ", x % y, sep = " ") print("Modulus of negative number is: ", y, "%", x, " = ", y % x, sep = " ")
First number: -10 Second number: 3 Modulus of negative number is: -10 % 3 = 2 Modulus of negative number is: 3 % -10 = -7 Do you want to continue(Y / N)? N

Нахождение остатка двух чисел с помощью функции fmod()

Рассмотрим программу, как получить остаток от двух чисел с плавающей запятой, используя функцию fmod() в Python.

import math # import math package to use fmod() function. res = math.fmod(25.5, 5.5) # pass the parameters print("Modulus using fmod() is:", res) ft = math.fmod(75.5, 15.5) print(" Modulus using fmod() is:", ft) # take two integer from the user x = int( input( "First number is")) y = int(input("Second number is ")) out = math.fmod(x, y) # pass the parameters print("Modulus of two numbers using fmod() function is", x, " % ", y, " EnlighterJSRAW" data-enlighter-language="python">Modulus using fmod() is: 3.5 Modulus using fmod() is: 13.5 First number is 24 Second number is 5 Modulus of two numbers using fmod() function is 24 % 5 = 4.0

n чисел с помощью функции

Давайте напишем программу на Python, чтобы найти модуль n чисел с помощью функции и цикла for.

def getRemainder(n, k): for i in range(1, n + 1): # Store remainder in the rem variable when i is divided by k number rem = i % k print(i, " % ", k, " = ", rem, sep = " ") # use _name_ driver code if __name__ == "__main__": # define the first number for displaying the number up to desired number. n = int(input("Define a number till that you want to display the remainder ")) k = int( input(" Enter the second number ")) # define the divisor # call the define function getRemainder(n, k)
Define a number till that you want to display the remainder 7 Enter the second number 5 1 % 5 = 1 2 % 5 = 2 3 % 5 = 3 4 % 5 = 4 5 % 5 = 0 6 % 5 = 1 7 % 5 = 2

Заданного массива с помощью функции mod()

Напишем программу для демонстрации функции mod() в Python.

import numpy as np # import numpy package x = np.array([40, -25, 28, 35]) # define first array y = np.array([20, 4, 6, 8]) # define second array # call mod() function and pass x and y as the parameter print("The modulus of the given array is ", np.mod(x, y))
The modulus of the given array is [0 3 4 3]

Как мы видим в приведенной выше программе, переменные x и y содержат массивы. После этого мы используем функцию mod() для передачи x и y в качестве параметра массива, который делит первый массив(x) на второй массив(y), а затем возвращает остаток чисел.

Нахождение модуля двух чисел, используя numpy

Давайте рассмотрим программу для импорта пакета numpy из библиотеки Python, а затем воспользуемся функцией остатка для получения модуля в Python.

import numpy as np # import numpy package as np # declaration of the variables with their values num = 38 num2 = 8 res = np.remainder(num, num2) # use np.remainder() function print( "Modulus is", num, " % ", num2, " EnlighterJSRAW" data-enlighter-language="python">Modulus is 38 % 8 = 6

Исключения в операторе модуля Python

В Python, когда число делится на ноль, возникает исключение, которое называется ZeroDivisionError. Другими словами, он возвращает исключение, когда число делится на делитель, равный нулю. Следовательно, если мы хотим удалить исключение из оператора модуля Python, делитель не должен быть равен нулю.

Напишем программу для демонстрации оператора Python Exception in Modulus.

x = int(input(' The first number is: ')) y = int(input(' The second number is: ')) # display the exception handling try: # define the try print(x, ' % ', y, ' = ', x % y) except ZeroDivisionError as err: # define the exception print('Cannot divide a number by zero! ' + 'So, change the value of the right operand.' )
The first number is: 24 The second number is: 0 Cannot divide a number by zero! So, change the value of the right operand.

Как видно из приведенного выше результата, он отображает: «Невозможно разделить число на ноль! Поэтому измените значение правого операнда». Следовательно, мы можем сказать, что когда мы делим первое число на ноль, оно возвращает исключение.

Источник

Оцените статью