pythonsyntaxoperatorsmodulo

What is the result of % (modulo operator / percent sign) in Python?


What does the % do in a calculation? I can't seem to work out what it does.

Does it work out a percent of the calculation for example: 4 % 2 is apparently equal to 0. How?


Solution

  • The % (modulo) operator yields the remainder from the division of the first argument by the second. The numeric arguments are first converted to a common type. A zero right argument raises the ZeroDivisionError exception. The arguments may be floating point numbers, e.g., 3.14%0.7 equals 0.34 (since 3.14 equals 4*0.7 + 0.34.) The modulo operator always yields a result with the same sign as its second operand (or zero); the absolute value of the result is strictly smaller than the absolute value of the second operand [2].

    Taken from https://docs.python.org/reference/expressions.html#binary-arithmetic-operations

    Example 1: 6%2 evaluates to 0 because there's no remainder if 6 is divided by 2 (3 times).

    Example 2: 7%2 evaluates to 1 because there's a remainder of 1 when 7 is divided by 2 (3 times).

    So to summarise that, it returns the remainder of a division operation, or 0 if there is no remainder. So 6%2 means find the remainder of 6 divided by 2.