我的代码:
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
答案 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