📜  Python中的模运算符(%) 是什么?

📅  最后修改于: 2022-05-13 01:55:06.599000             🧑  作者: Mango

Python中的模运算符(%) 是什么?

当我们看到“%”时,首先想到的就是“百分号”,但是当我们从计算机语言的角度来思考它时,这个符号实际上还有另一个名称和含义。在计算中,模运算(%) 求一个数除以另一个数后的余数或有符号余数(称为运算的模数)。

给定两个正数 a 和 n,a 模 n(a % n,缩写为 a mod n)是 a除以n 的余数,其中 a 是被除数,n 是除数。

基本上, Python模运算用于获取除法的余数。模运算符( % ) 与+/***//一起被视为算术运算。在大多数语言中,此模运算符的两个操作数都必须是整数。但是Python Modulo 在这种情况下是通用的。操作数可以是整数浮点数

句法:

a % b

在这里,a 除以 b,并返回该除法的余数。

代码:

Python3
# inputs
a = 13
b = 5
  
# Stores the remainder obtained 
# when dividing a by b, in c
c = a % b      
print(a, "mod", b, "=",
      c, sep = " ")
  
# inputs
d = 15.0
e = 7.0
  
# Stores the remainder obtained 
# when dividing d by e, in f
f = d % e
print(d, "mod", e, "=", 
      f, sep = " ")


Python3
# function is defined for finding out 
# the remainder of every number from 1 to n
def findRemainder(n, k):
    
  for i in range(1, n + 1):
    # rem will store the remainder 
    # when i is divided by k.
    rem = i % k  
      
    print(i, "mod", k, "=", 
          rem, sep = " ")
  
# Driver code
if __name__ == "__main__" :
    
  # inputs
  n = 5
  k = 3
    
  # function calling
  findRemainder(n, k)


Python3
# inputs
a = 14
b = 0
  
# exception handling
try:
    print(a, 'mod', b, '=',
          a % b, sep = " ")
      
except ZeroDivisionError as err:
    print('Cannot divide by zero!' +
          'Change the value of the right operand.')


输出:

13 mod 5 = 3
15.0 mod 7.0 = 1.0

这是一个显示语法使用的简单示例,以及模运算符执行的基本操作。假设,我们要计算从 1 到 n 的每个数除以固定数 k 的余数。

Python3

# function is defined for finding out 
# the remainder of every number from 1 to n
def findRemainder(n, k):
    
  for i in range(1, n + 1):
    # rem will store the remainder 
    # when i is divided by k.
    rem = i % k  
      
    print(i, "mod", k, "=", 
          rem, sep = " ")
  
# Driver code
if __name__ == "__main__" :
    
  # inputs
  n = 5
  k = 3
    
  # function calling
  findRemainder(n, k)

输出:

1 mod 3 = 1
2 mod 3 = 2
3 mod 3 = 0
4 mod 3 = 1
5 mod 3 = 2

例外

使用Python模运算得到的唯一异常是ZeroDivisionError 。如果模运算符的除法操作数变为,就会发生这种情况。这意味着正确的操作数不能为零。让我们看下面的代码来了解这个Python异常。

Python3

# inputs
a = 14
b = 0
  
# exception handling
try:
    print(a, 'mod', b, '=',
          a % b, sep = " ")
      
except ZeroDivisionError as err:
    print('Cannot divide by zero!' +
          'Change the value of the right operand.')

输出:

Cannot divide by zero! Change the value of the right operand.