要创建一个无限的while循环
,我们通常会使用while True
或者while 1
。
虽然这两种方式性能上的差异通常非常微小,但有趣的是,while 1
的执行速度略微更快一些。
这种微小的速度差异源于1是一个字面量,而True
是一个全局变量,在Python的全局作用域中需要进行查找,从而带来了一点额外的开销。
我们可以通过一段代码来实际比较这两种方法的性能差异:
import timeit
def Loop_with_true ():
i = 0
while True :
if i >= 1000 :
Break
i += 1
def Loop_with_one ():
i = 0
while 1 :
if i >= 1000 :
Break
i += 1
print (timeit. timeit(loop_with_true, number= 10000 ))
# 0.1733035419601947
print (timeit.timeit(loop_with_one, number= 10000 ))
# 0.16412191605195403
如我们所观察到的,while 1
的执行确实略微快于while True
。
然而,在现代Python解释器(例如CPython)
中,由于经过了高度优化,这种差异通常非常微小,几乎可以忽略不计。因此,在实际编程中,我们不需要过分关注这种微小的差异。而且从代码可读性的角度考虑,while True比while 1
更为直观。