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.