如何减去Python中的“for”循环计数器?

Cup*_*tor 1 python for-loop range

我所知道的Python循环的结构for如下:

for i in range(10)
Run Code Online (Sandbox Code Playgroud)

然后范围实际上是[0,1,2,3,4,5,6,7,9]. 现在这里有一个问题,那就是我想通过放置一行来减少循环的计数器i-=1,但这并没有显示我期望的结果。

以下示例的结构与 Java 和 C 中的结构相同while(True),但在这里它可以工作,并且循环中的计数器忽略旨在减少它的行。

for i in range(10):
    i-=1
    print i
Run Code Online (Sandbox Code Playgroud)

它生成输出:

-1
0
1
2
3
4
5
6
7
8
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能得到我想要的循环for!我知道这可以很容易地完成一段时间,如下所示:

i=0
while(i<10):
   i-=1
   print i
   i+=1
Run Code Online (Sandbox Code Playgroud)

以下是 Java 代码作为示例,我希望看到无限循环打印-1

这是Java代码:

import static java.lang.System.out;

    public class HelloWorld{

         public static void main(String []args){
            for(int i=0;i<10;i++)
            {
                i--;
                out.println(i);
            }
         }
    }
Run Code Online (Sandbox Code Playgroud)

whe*_*ies 5

range函数有 3 个参数:开始、停止和步骤:

for i in range(-1, 9):
  yield i
Run Code Online (Sandbox Code Playgroud)

往反方向走

for i in range(10, 0, -1):
  yield i
Run Code Online (Sandbox Code Playgroud)

查看文档

编辑:

当然,没有什么可以阻止您range直接使用。因此map(print, range(10, 0, -1))会将它们全部打印到屏幕上,同时range(10, 0, -1)让您可以直接访问整数。