gpt4 book ai didi

python - 无限循环,未知原因

转载 作者:太空宇宙 更新时间:2023-11-04 09:50:36 24 4
gpt4 key购买 nike

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

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 和命令提示符下运行它,两者的结果相同。

如果我将设置更改为生成器而不是列表理解,一切正常,同样可以说在 timeit 之外运行相同的代码。

我什至尝试过重新启动我的计算机,因为你知道,我必须尝试将其关闭并重新打开,它适用于大多数情况。

最佳答案

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

关于python - 无限循环,未知原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47948762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com