Python 中的模运算使用 “%” 表示。对于正整数,其结果返回两个数字之间除法的余数。模运算符是 Python 算术运算符的一部分。
>>> 7%3
1
>>> 9%5
4
>>> 10%5
0
对于正整数模运算。
7 % 3: 7 除以 3 商 2,余 1。
9 % 3: 9 除以 5 商 1,余 4。
10 % 5: 10 除以 5 商 2,余 0。
负整数的模运算
下面我们测试负整数的模运算,运算结果可能让你难以理解。
>>> -7%3
2
>>> 7%-3
-2
>>> -7%-3
-1
1.当模运算中有负数时,模运算结果的符号与除数相同。如-7%3=2、7%-3=-2;
2.当模运算中两个数是同号时,模运算结果是取两者的余数,符号与除数相同。如7%3=1、-7%-3=-1;
3.当模运算中两个数是异号时,模运算结果是先将两个整数看作是正数,再作除法运算:
- 能整除时,其值为 0 例如:-10%2=0 、10%-2=0
- 不能整除时,其值=除数×(整商+1)-被除数
- 符号与除数相同
例如:-7%3=2、7%-3=-2
7 除以 3 的整数商为 2,加 1 后为 3;其与除数之积为 9;再与被除数之差为(9 - 7 = 2);取除数的符号。所以值为 -2。
被除数小于除数的模
>>> 2%5
2
>>> -2%5
3
>>> 2%-5
-3
>>> -2%-5
-2
运算规则与上面相同,例如,2%-5=-3。
2 除以 5 的整数商为 0,加 1 后为 1;其与除数之积为 5;再与被除数之差为(5 - 2 = 3);取除数的符号。所以值为 -3。
除数为零时的模运算
模运算除数为零时将返回ZeroDivisionError。
ZeroDivisionError: integer division or modulo by zero
「异常处理:」
try:
3 % 0
except ZeroDivisionError:
print("除数不能为0")
模运算的典型应用
Python 中模运算一个典型用途是判断给定数字是奇数还是偶数。
for x in range(1,11):
if x % 2 == 0:
print(f"{x} 是偶数")
else:
print(f"{x} 是奇数")
?
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!
?