全网最全最详细讲解python中取整函数以及取余和取模的区别
挑重要的讲,其他看注释
% 取模运算符
各个环境下%运算符的含义不同,比如c/c++,java 为取余,而python则为取模
这里讲下取模和取余的区别,简单又重要的基础知识 😃
通常取模运算也叫取余运算,它们返回结果都是余数 .rem (取余)和 mod(取模) 唯一的区别在于:
当 x 和 y 的正负号一样的时候,两个函数结果是等同的;
当 x 和 y 的符号不同时,rem 函数结果的符号和 x 的一样,而 mod 和 y 一样
例:mod(36,-10)=-4
这有两种方法,可以选择一种记忆:
法一(百度百科):商为-3或-4,取较小的-4,36-(-4)*(-10)=-4,与除数符号相同,即为-4,保证结果与除数符号相同。
法二(w3school):36 除以 10 的整数商为 3,加 1 后为 4;其与除数之积为 40;再与被数之差为(40-36=4);取除数的符号。所以值为 -4。
>> mod(5,2)
ans =1 % 商为3、2,2<3,商取2,5-2*2=1,除数是正,余数就是正,则为1
>> mod(-5,2)
ans =1 % 商为-2、-3,-3<-2,商取-3,-5-(-3)*2=1,除数是正,余数就是正,则为1
>> mod(5,-2)
ans =-1 % -2,-3取-3,5-6=-1,除数是负,余数就是负
>> mod(-5,-2)
ans =-1 % 用 rem 时,不管除数是正是负,余数的符号与被除数的符号相同
>> rem(5,2)
ans =1 % 被除数是正,余数就是正
>> rem(5,-2)
ans =1 % 被除数是正,余数就是正
>> rem(-5,2)
ans =-1 % 被除数是负, 余数就是负
>> rem(-5,-2)
ans =-1
>>> import math
>>> math.ceil(-1.6)
-1
>>> math.ceil(1.6)
2
>>> math.floor(-1.6) #ceil、floor函数为向上向下取整函数(正无穷、负无穷方向)
-2
>>> math.floor(1.6)
1
>>>5/3
1.67
>>> 5//3 #//向负无穷方向取整
1
>>> -5//3
-2
>>> int(-1.6) #int保留整数去除小数
-1
>>> int(1.6)
1
>>> round(1.6) #round 四舍五入
2
>>> round(1.4)
1
>>> -5%3 #自己计算下,康康记住没
1
>>> 5%-3
-1
>>> -5%-3
-2
>>> 5%3
2
如果你觉得本文对你有帮助,记得点赞、评论、收藏,支持一下up主,那么我们下期再见