当整数与范围相比时,在python中循环无限

coo*_*ner 0 python while-loop python-2.7

我的代码:

i=0
    a = range(100)
    while i < range(100):
        print i
        i += 9
Run Code Online (Sandbox Code Playgroud)

这进入了无限循环...我可以知道为什么吗?

是因为整数与列表比较?但当我变得超过99时会发生什么?

它不应该出现在while循环中吗?

下面的代码正常工作正常:

i=0
        a = range(100)
        a_len = len(a)
        while i < a_len:
            print i
            i += 9
Run Code Online (Sandbox Code Playgroud)

Jon*_*nts 8

遗憾的是,在Python 2.x中,a int总是小于a list(即使该列表为空).

>>> 9 < []
True
Run Code Online (Sandbox Code Playgroud)

你想要做的是使用3参数形式,range所以你有一个开始,一个停止和一个步骤,例如:

for i in range(0, 100, 9):
    print i
Run Code Online (Sandbox Code Playgroud)