当整数与范围

时间:2016-09-04 09:26:45

标签: python python-2.7 while-loop

我的代码:

i=0
    a = range(100)
    while i < range(100):
        print i
        i += 9

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

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

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

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

i=0
        a = range(100)
        a_len = len(a)
        while i < a_len:
            print i
            i += 9

2 个答案:

答案 0 :(得分:8)

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

>>> 9 < []
True

您要做的是使用range的3参数形式,因此您有开始停止步骤,例如:

for i in range(0, 100, 9):
    print i

答案 1 :(得分:0)

range(100)是一个从1到100的整数列表,你应该迭代它。所以,len(range(100) = 100.在python 2.x中,列表总是大于整数。解决此问题的一种非常简单的方法是:

i=0
while i < 100: # instead of range(100)
    print i
    i += 9