【发布时间】:2013-09-16 11:10:56
【问题描述】:
I'm taking this Python course online 并试图弄清楚为什么当 x 值为 3 时这个循环是无限的
def mystery(x):
a = [0, 4, 0, 3, 2]
while x > 0:
x = a[x]
return "Done"
mystery(3) 无限运行。
是不是因为当列表值已经是 3 时它一直试图将 x 设置为 3?
【问题讨论】:
-
你可能想要
while x != a[x]:而不是while x > 0:。这将处理映射到自身的 both 值,而不仅仅是其中一个。但是,如果有任何循环,这仍然无济于事(例如,a = [1, 0, 2, 3, 4]将在0或1上永远循环)。
标签: python indexing while-loop infinite-loop