What is the result of % in Python?

前端 未结 19 1689
粉色の甜心
粉色の甜心 2020-11-22 00:57

What does the % 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

相关标签:
19条回答
  • 2020-11-22 01:10

    It's a modulo operation http://en.wikipedia.org/wiki/Modulo_operation

    http://docs.python.org/reference/expressions.html

    So with order of operations, that works out to

    (3+2+1-5) + (4%2) - (1/4) + 6

    (1) + (0) - (0) + 6

    7

    The 1/4=0 because we're doing integer math here.

    0 讨论(0)
  • 2020-11-22 01:13

    It is, as in many C-like languages, the remainder or modulo operation. See the documentation for numeric types — int, float, long, complex.

    0 讨论(0)
  • 2020-11-22 01:14

    I have found that the easiest way to grasp the modulus operator (%) is through long division. It is the remainder and can be useful in determining a number to be even or odd:

    4%2 = 0
    
      2
    2|4
     -4
      0
    
    
    11%3 = 2
    
      3
    3|11
     -9
      2
    
    0 讨论(0)
  • 2020-11-22 01:15

    It was hard for me to readily find specific use cases for the use of % online ,e.g. why does doing fractional modulus division or negative modulus division result in the answer that it does. Hope this helps clarify questions like this:

    Modulus Division In General:

    Modulus division returns the remainder of a mathematical division operation. It is does it as follows:

    Say we have a dividend of 5 and divisor of 2, the following division operation would be (equated to x):

    dividend = 5
    divisor = 2
    
    x = 5/2 
    
    1. The first step in the modulus calculation is to conduct integer division:

      x_int = 5 // 2 ( integer division in python uses double slash)

      x_int = 2

    2. Next, the output of x_int is multiplied by the divisor:

      x_mult = x_int * divisor x_mult = 4

    3. Lastly, the dividend is subtracted from the x_mult

      dividend - x_mult = 1

    4. The modulus operation ,therefore, returns 1:

      5 % 2 = 1

    Application to apply the modulus to a fraction

    Example: 2 % 5 
    

    The calculation of the modulus when applied to a fraction is the same as above; however, it is important to note that the integer division will result in a value of zero when the divisor is larger than the dividend:

    dividend = 2 
    divisor = 5
    

    The integer division results in 0 whereas the; therefore, when step 3 above is performed, the value of the dividend is carried through (subtracted from zero):

    dividend - 0 = 2  —> 2 % 5 = 2 
    

    Application to apply the modulus to a negative

    Floor division occurs in which the value of the integer division is rounded down to the lowest integer value:

    import math 
    
    x = -1.1
    math.floor(-1.1) = -2 
    
    y = 1.1
    math.floor = 1
    

    Therefore, when you do integer division you may get a different outcome than you expect!

    Applying the steps above on the following dividend and divisor illustrates the modulus concept:

    dividend: -5 
    divisor: 2 
    

    Step 1: Apply integer division

    x_int = -5 // 2  = -3
    

    Step 2: Multiply the result of the integer division by the divisor

    x_mult = x_int * 2 = -6
    

    Step 3: Subtract the dividend from the multiplied variable, notice the double negative.

    dividend - x_mult = -5 -(-6) = 1
    

    Therefore:

    -5 % 2 = 1
    
    0 讨论(0)
  • 2020-11-22 01:17

    In most languages % is used for modulus. Python is no exception.

    0 讨论(0)
  • 2020-11-22 01:19

    % Modulo operator can be also used for printing strings (Just like in C) as defined on Google https://developers.google.com/edu/python/strings.

          # % operator
      text = "%d little pigs come out or I'll %s and %s and %s" % (3, 'huff', 'puff', 'blow down')
    

    This seems to bit off topic but It will certainly help someone.

    0 讨论(0)
提交回复
热议问题