Python 无限循环,未知原因

Python 无限循环,未知原因,python,python-3.6,timeit,Python,Python 3.6,Timeit,出于某种原因,这段代码似乎进入了一个无限循环,我不知道为什么 import timeit t = timeit.Timer(stmt="for num in num_list: print(num)", setup="num_list = [digit for digit in range(1, 101)]") print(t.timeit()) 我已经通过Anaconda安装了python版本3.6.2 我试着在Spyder IDE和命令提示符下运行它,

出于某种原因,这段代码似乎进入了一个无限循环,我不知道为什么

import timeit

t = timeit.Timer(stmt="for num in num_list: print(num)",
                 setup="num_list = [digit for digit in range(1, 101)]")

print(t.timeit())
我已经通过Anaconda安装了python版本3.6.2

我试着在Spyder IDE和命令提示符下运行它,两者都有相同的结果

如果我将设置更改为generator,而不是list comprehension,那么一切都可以正常工作,在超时运行相同的代码也是如此


我甚至试着重新启动我的电脑,因为你知道,我必须试着关闭它,然后再打开它,它对大多数事情都有效。

它不是一个无限循环,只是一个很长的循环<代码>设置只运行一次,因此当您使用生成器表达式时,它会在第一次运行
stmt
后被使用,不会再打印任何内容。使用列表理解时,每次运行
stmt
时都会打印每个列表元素,从而导致对
print
进行100×1000000次调用。(100万是
Timer.timeit()
的默认迭代次数)

您在没有使用timeit的情况下尝试过吗?-默认的交互次数是1000000。@Supersew我确认它可以在时间之外工作。它已经在我的原始帖子中了