Python 取模运算(取余)%误区及详解

Python 取模运算(取余)%误区及详解


首先,必须要先明确一个概念(针对新手),不要用数学求余数角度来思考模运算,python、Java等各种语言都有其不同的运行机制。

python的模运算计算规则:

r = a % b = a - [a//b]*b
#a//b为a/b向下取整,注意是向下取整(所以又称floor除、地板除),
#并不是直接取整,int()才是直接取整

看下面的例子:

>>>7%-3      
-2           #  7//-3=-3   r=7-(-3)*(-3)=-2
>>>7%3
1            #  7//3=2     r=7-2*3=1
>>>7.5%2
1.5            #  7.5//2=3  r=7.5-2*3=1.5
>>>7.5%-2
-0.5         #  7.5//-2=-4  r=7.5-(-2)*(-4)=-0.5

怎么样?现在是不是清晰了很多。

接下来让我们看一下模运算常见的一个例子。

爱因斯坦曾出过这样一道有趣的数学题:
有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。

for n in range(1,2000):      
    (print(n) if (n%2==1 and n%3==2 and n%5==4 and n%6==5 and n%7==0) else '')
#范围你自己随便给,我这里只搜索了2000以内
#我这里只是用了一个三元运算符,方法你自己选

到这里就结束了,如有问题可以在评论区交流(我也是初学者哦,一起加油!)

  • 12
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值