可以不带i来做下面的事情吗?

for i in range(some_number):
    # do something

如果你只是想做某件事N次而不需要迭代器。


当前回答

我们可以使用while & yield,我们可以像这样创建自己的循环函数。在这里你可以参考官方文件。

def my_loop(start,n,step = 1):
    while start < n:
        yield start
        start += step

for x in my_loop(0,15):
    print(x)

其他回答

为未使用的值赋值的一般习惯用法是将其命名为_。

for _ in range(times):
    do_stuff()

可以使用_11(或任何数字或其他无效标识符)来防止与gettext发生名称冲突。任何时候你使用下划线+无效标识符,你得到一个可以在for循环中使用的虚拟名称。

也许答案取决于你在使用迭代器时遇到了什么问题? 可能会使用

i = 100
while i:
    print i
    i-=1

or

def loop(N, doSomething):
    if not N:
        return
    print doSomething(N)
    loop(N-1, doSomething)

loop(100, lambda a:a)

但坦率地说,我认为使用这种方法没有任何意义

是什么:

while range(some_number):
    #do something

现在您得到的不是一个不需要的计数器,而是一个不需要的列表。 最好的解决方案是使用一个以“_”开头的变量,这告诉语法检查器您知道您没有使用该变量。

x = range(5)
while x:
  x.pop()
  print "Work!"