
众所周知,Python 不是一种执行效率较高的语言。此外在任何语言中,循环都是一种非常消耗时间的操作。假如任意一种简单的单步操作耗费的时间为 1 个单位,将此操作重复执行上万次,最终耗费的时间也将增长上万倍。
while 和 for 是 Python 中常用的两种实现循环的关键字,它们的运行效率实际上是有差距的。比如下面的测试代码:
import timeit
def while_loop(n=100_000_000):
i = 0
s = 0
while i < n:
s += i
i += 1
return s
def for_loop(n=100_000_000):
s = 0
for i in range(n):
s += i
return s
def main():
print('while loop\t\t', timeit.timeit(while_loop, number=1))
print('for loop\t\t', timeit.timeit(for_loop, number=1))
if __name__ == '__main__':
main()
# => while loop 4.718853999860585
# => for loop 3.211570399813354
这是一个简单的求和操作,计算从 1 到 n 之间所有自然数的总和。可以看到 for 循环相比 while 要快 1.5 秒。</

本文探讨了Python中for和while循环的效率差异,指出while循环相比于for循环多了边界检查和自增操作,导致效率降低。通过对比,强调了使用内置函数如sum()进行累加操作能显著提高执行效率,进一步通过数学公式避免循环,以提升代码性能。文章建议在Python编程中尽量利用内置函数减少纯Python代码的循环。
最低0.47元/天 解锁文章
1305

被折叠的 条评论
为什么被折叠?



