python能同时输出商和余数的函数_在两个独立变量中同时得到楼层除法和余数

如果使用更大的数字,性能会有显著的差异。在

下面是一个同时使用小数字和大数字的示例:$ py27 -m timeit -s "a=123;b=7" "divmod(a,b)"

10000000 loops, best of 3: 0.0913 usec per loop

$ py27 -m timeit -s "a=123;b=7" "a//b;a%b"

10000000 loops, best of 3: 0.047 usec per loop

$ py27 -m timeit -s "a=123333333333333333333333333333333333333;b=7222222222222222222" "divmod(a,b)"

10000000 loops, best of 3: 0.165 usec per loop

$ py27 -m timeit -s "a=123333333333333333333333333333333333333;b=7222222222222222222" "a//b;a%b"

1000000 loops, best of 3: 0.232 usec per loop

为什么有区别?在

divmod()需要函数调用,而//和%是运算符。函数调用相对于运算符有额外的开销。因此,当计算成本最小时,调用函数的开销远大于实际的计算开销。在

对于较大的数字,divmod()更快。divmod()同时计算商和余数并返回它们。//和%运算符各自计算商和余数,但只返回其中一个结果。在

divmod()的开销较大,但只执行一个除法。//%的公司管理费用较少,但执行两个部门。只要与执行除法的时间相比开销很大,divmod()就会慢一些。但是一旦除法的成本大于开销,divmod()将更快。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值