Python中对负数的整除和取余及特值情况

您所在的位置:网站首页 python浮点数取余运算规则 Python中对负数的整除和取余及特值情况

Python中对负数的整除和取余及特值情况

2024-06-26 22:01| 来源: 网络整理| 查看: 265

整数取余负数

技巧:先忽略负号,之后取余,和正常取余不同的是:被取余的数x一个数,不能比取余的数小(可以相等,这意味着任何一个整数取余-1结果都为0),之后用这个数减去取余的数,最后在得到的结果上加上负号;当被取余的负数取正后大于取余的数时,直接使用取正后的被取余的数减去取余的数,之后加上负号即为最终结果(e.g. 22取余-3,先将-3看作3,之后3x7=21,比22小,所以3x8=24,再用24-22=2,最后在得到的结果上加上负号得到最终结果为-2,即:22 % -3 = -2)

>>>print(22 % -2) 0 >>>print(22 % -3) -2 >>>print(22 % -4) -2 >>>print(22 % -5) -3 >>>print(22 % -6) -2 >>>print(22 % -10) -8 >>>print(22 % -23) -1 >>>print(22 % -24) -2 >>>print(22 % -25) -3 >>>print(22 % -26) -4 负数取余整数

技巧:先忽略负号,之后取余,和正常取余不同的是:被取余的数x一个数,不能比取余的数小(可以相等,这意味着任何一个整数取余-1结果都为0),之后用这个数减去取余的数即为最终结果;当取余的负数取正后小于被取余的数时,直接使用被取余的数加上取余的负数,即为最终结果(e.g. -22取余3,先将-22看作22,之后3x7=21,比22小,所以3x8=24,再用24-22=2,最终结果即为2,即:-22 % 3 = 2)

>>>print(-22 % 2) 0 >>>print(-22 % 3) 2 >>>print(-22 % 4) 2 >>>print(-22 % 5) 3 >>>print(-22 % 6) 2 >>>print(-22 % 10) 8 >>>print(-22 % 23) 1 >>>print(-22 % 24) 2 >>>print(-22 % 25) 3 >>>print(-22 % 26) 4 负数取余负数

技巧:先忽略负号,之后正常取余,最后在取余结果中加上负号;当被取余的数的绝对值大于取余的数的绝对值时,结果恒为取余的数(不是它的绝对值哦!这意味着此时返回结果恒为一个负数)(e.g. -22取余-3,先将-3看作3将-22看作22,之后3x7=21,用22-21=1,最后添加负号得到-1,最终结果即为-1,即:-22 % -3 = -1)

>>>print(-22 % -2) 0 >>>print(-22 % -3) -1 >>>print(-22 % -4) -2 >>>print(-22 % -5) -2 >>>print(-22 % -6) -4 >>>print(-22 % -10) -2 >>>print(-22 % -23) -22 >>>print(-22 % -24) -22 >>>print(-22 % -25) -22 >>>print(-22 % -26) -22 整数整除负数

技巧:先将负数看作正数,之后-(被整除的数x? >= 除数);当被整除的数的绝对值大于除数时,运算结果恒为-1(对被整除的数乘以哪个数大于等于除数 进行取负)(e.g. 25 // -4,先将-4看作4,之后4x哪个数大于25?答案是7,最后将结果取负,得到最终结果为-7,即:25 // -4 = -7)

>>>print(25 // -2) -13 >>>print(25 // -3) -9 >>>print(25 // -4) -7 >>>print(25 // -5) -5 >>>print(25 // -6) -5 >>>print(25 // -10) -3 >>>print(25 // -26) -1 >>>print(25 // -27) -1 >>>print(25 // -28) -1 >>>print(25 // -29) -1 负数整除整数

技巧:先将负数看作正数,之后-(被整除的数x? >= 除数的绝对值)(对被整除的数乘以哪个数大于等于除数的绝对值 进行取负);当除数的绝对值大于被整除的数时,运算结果恒为-1(e.g. -25 // 4,先将-25看作25,之后4x哪个数大于25?答案是7,最后将结果取负,得到最终结果为-7,即:-25 // 4 = -7)

>>>print(-25 // 2) -13 >>>print(-25 // 3) -9 >>>print(-25 // 4) -7 >>>print(-25 // 5) -5 >>>print(-25 // 6) -5 >>>print(-25 // 10) -3 >>>print(-25 // 26) -1 >>>print(-25 // 27) -1 >>>print(-25 // 28) -1 >>>print(-25 // 29) -1 负数整除负数

技巧:忽略符号,之后正常整除即可,最终结果无需添加负号;当被整除的数的绝对值大于除数的绝对值时,结果恒为0(e.g. -25 // -3,先将-25看作25将-3看作3,之后25 // 3 = 8,最终结果就是8,即:-25 // -3 = 8)

>>>print(-25 // -2) 12 >>>print(-25 // -3) 8 >>>print(-25 // -4) 6 >>>print(-25 // -5) 5 >>>print(-25 // -6) 4 >>>print(-25 // -10) 2 >>>print(-25 // -26) 0 >>>print(-25 // -27) 0 >>>print(-25 // -28) 0 >>>print(-25 // -29) 0 特殊的值 1:

符号左边:     取余:符号右边的数为正时,结果恒为1;符号右边的数为负时,结果恒为符号右边的数 + 1

// 取余-符号右边的数为正时 >>>print(1 % 22) 1 >>>print(1 % 25) 1 >>>print(1 % 30) 1 >>>print(1 % 50) 1 >>>print(1 % 91) 1 // 取余-符号右边的数为负时 >>>print(1 % -22) -21 >>>print(1 % -25) -24 >>>print(1 % -30) -29 >>>print(1 % -50) -49 >>>print(1 % -91) -90

    整除:符号右边的数为正时,结果恒为0;符号右边的数为负时,结果恒为-1

// 整除-符号右边的数为正时 >>>print(1 // 22) 0 >>>print(1 // 25) 0 >>>print(1 // 30) 0 >>>print(1 // 50) 0 >>>print(1 // 91) 0 // 整除-符号右边的数为负时 >>>print(1 // -22) -1 >>>print(1 // -25) -1 >>>print(1 // -30) -1 >>>print(1 // -50) -1 >>>print(1 // -91) -1

符号右边:     取余:结果恒为0

// 取余 >>>print(22 % 1) 0 >>>print(25 % 1) 0 >>>print(30 % 1) 0 >>>print(-30 % 1) 0 >>>print(-50 % 1) 0 >>>print(-91 % 1) 0

    整除:结果恒为符号左边的数取反

// 整除 >>>print(22 // 1) 22 >>>print(25 // 1) 25 >>>print(30 // 1) 30 >>>print(-30 // 1) -30 >>>print(-50 // 1) -50 >>>print(-91 // 1) -91 -1:

符号左边:     取余:符号右边的数为正数时,结果恒为符号右边的数 + -1;当符号右边的数为负数时,结果恒为-1

// 取余 >>>print(-1 % 22) 21 >>>print(-1 % 25) 24 >>>print(-1 % 30) 29 >>>print(-1 % -30) -1 >>>print(-1 % -50) -1 >>>print(-1 % -91) -1

    整除:符号右边的数为正数时,结果恒为-1;当符号右边的数为负数时,结果恒为0

// 整除 >>>print(-1 // 22) -1 >>>print(-1 // 25) -1 >>>print(-1 // 30) -1 >>>print(-1 // -30) 0 >>>print(-1 // -50) 0 >>>print(-1 // -91) 0

符号右边:     取余:结果恒为0

// 取余 >>>print(22 % -1) 0 >>>print(23 % -1) 0 >>>print(58 % -1) 0 >>>print(-22 % -1) 0 >>>print(-23 % -1) 0 >>>print(-58 % -1) 0

    整除:结果恒为符号左边的数取反

// 整除 >>>print(22 // -1) -22 >>>print(23 // -1) -23 >>>print(58 // -1) -58 >>>print(-22 // -1) 22 >>>print(-23 // -1) 23 >>>print(-58 // -1) 58 0:

0不能出现在符号右边,当符号左边为0时,结果恒为0

// 0出现在符号右边会报错 >>>print(22 // 0) Traceback (most recent call last): File "", line 1, in 22 // 0 ZeroDivisionError: integer division or modulo by zero >>>print(22 % 0) Traceback (most recent call last): File "", line 1, in 22 % 0 ZeroDivisionError: integer division or modulo by zero // 符号左边为0的情况 // 整除 >>>print(0 // 22) 0 >>>print(0 // 34) 0 >>>print(0 // 98) 0 // 取余 >>>print(0 % 22) 0 >>>print(0 % 34) 0 >>>print(0 % 98) 0 俩个数相等时:

负号在符号左边:     取余:结果恒为0

>>>print(-22 % 22) 0 >>>print(-34 % 34) 0 >>>print(-79 % 79) 0 >>>print(-13 % 13) 0 >>>print(-25 % 25) 0 >>>print(-30 % 30) 0

    整除:结果恒为-1

>>>print(-22 // 22) -1 >>>print(-34 // 34) -1 >>>print(-79 // 79) -1 >>>print(-13 // 13) -1 >>>print(-25 // 25) -1 >>>print(-30 // 30) -1

负号在符号右边:     取余:结果恒为0

>>>print(22 % -22) 0 >>>print(34 % -34) 0 >>>print(79 % -79) 0 >>>print(13 % -13) 0 >>>print(25 % -25) 0 >>>print(30 % -30) 0

    整除:结果恒为-1

>>>print(22 // -22) -1 >>>print(34 // -34) -1 >>>print(79 // -79) -1 >>>print(13 // -13) -1 >>>print(25 // -25) -1 >>>print(30 // -30) -1

左右俩边都为负时:     取余:结果恒为0

>>>print(-22 % -22) 0 >>>print(-34 % -34) 0 >>>print(-79 % -79) 0 >>>print(-13 % -13) 0 >>>print(-25 % -25) 0 >>>print(-30 % -30) 0

    整除:结果恒为1

>>>print(-22 // -22) 1 >>>print(-34 // -34) 1 >>>print(-79 // -79) 1 >>>print(-13 // -13) 1 >>>print(-25 // -25) 1 >>>print(-30 // -30) 1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3