python while一定要提供循环次数吗_Python for 一定快过 while?要看情况啊~!

看了标题,我想大家应该知道今天要讲什么了,今天我要讲循环效率的分析,在讲之前我首先说一下好多人普遍认为 Python for 要快过 while,至于为什么,可以继续往下看。

为什么普遍认为 for 快过 while?

大家都这样认为其实也不是凭感觉的,是有一定依据的,我们可以看一下下面这段程序。from time import time

N = 100000000

start = time()

for i in range(N):

pass

end = time()

print(end-start)

start = time()

a = 0

while a < N:

a += 1

end = time()

print(end-start)

这里采用相同次数比时间的方法来比较两种循环的执行效率,运行结果如图所示:

从运行结果中我们可以发现确实是 for 更快,那么是不是任何循环只要用 for 就行了,while 就当不存在呢?其实并不是,至于为什么?请继续往下阅读。

总有 while 快过 for 的时候

我们可以发现上面两个循环都不是死循环,都是循环一定次数跳出的,如果是死循环会发生什么情况呢?先来看下面的程序。from time import time

N = 100000000

start = time()

a = 0

for i in iter(int, 1):

if a == N:

break

a += 1

end = time()

print(end-start)

start = time()

a = 0

while True:

if a == N:

break

a += 1

end = time()

print(end-start)

这里依旧使用相同次数比时间的方法来比较两种循环的执行效率,运行结果如图所示:

从运行结果中我们可以发现使用 while 速度更快,这说明 while 并不是一点用都没有的,那么有些人可能会问:什么情况下用 for?什么情况下用 while?下面我来简单总结一下。

总结

从上面的分析中我们可以得出以下两个结论:如果不是死循环,优先考虑 for 循环。

如果是死循环,优先考虑 while 循环。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值