在Python中,带有“range”的for循环是如何工作的?

在Python中,带有“range”的for循环是如何工作的?,python,Python,有人能给我解释一下为什么上面的代码打印1-100吗?我知道range函数不包括指定范围内的最后一个数字,但是,语法的“number”部分是什么 我更习惯于C++和java,我在这里编写代码: for number in range(1,101): print number (i=1;i

有人能给我解释一下为什么上面的代码打印1-100吗?我知道range函数不包括指定范围内的最后一个数字,但是,语法的“number”部分是什么

我更习惯于C++和java,我在这里编写代码:
for number in range(1,101): 
    print number
(i=1;i<101;i++)的
{
系统输出打印LN(i);
i++;
}

那么“数字”到底是什么呢?我确信我对这个问题的研究太深入了,有一个简单的问题。

number
相当于C循环中的
I
,也就是说,它是一个保存每个循环迭代值的变量

将Python代码简单地转换为C将产生如下结果:

for (i = 1; i < 101; i++) {
   System.out.println(i);
   i++;
}
for(int number=1;number<101;number++){
printf(“%d\n”,数字);
}
说明:

范围([开始],停止[,步骤])

这是一个多功能的创建 包含算术运算的列表 进步。它是最常用的语言 对于循环。论据必须清楚明了 整数。如果步骤参数为 省略,默认为1。如果 忽略start参数,它是默认值 到0。完整表单返回一个 纯整数[开始,开始+步, 开始+2*步,…]。如果步骤是 肯定的,最后一个元素是 最大启动+i*步数小于 停止如果步骤为负,则为最后一步 元素是最小的开始+i* 比停止大一步。一步不能走 为零(否则会引发ValueError)

编辑:您可能还想查看。 编辑:所以基本上:

for (int number = 1; number < 101; number++) {
  printf("%d\n", number);
}

数字是一个变量,范围中的每个值都放置在该变量中


range实际上返回一个迭代器,for负责使它在该范围内前进。

range是数字1到100的列表


number
然后引用该列表中的每个对象

正如JG所说,number是您的变量(很像C代码中的
i
)。Python中的for循环实际上就像C语言中的Frach循环(我认为Visual C++也有它)。基本上,它在容器上迭代。因此,您也可以将该语法用于列表:

for ( start ; stop ; step )
range( start, stop, step ) // where start and step are optional

范围对象的行为有点像容器,包含A和b之间的所有数字。

对于在面向对象或过程语言(c、Java等)方面有经验的Python新程序员来说,这是一个稍微令人困惑的问题

这些语言之间的区别在于Python不支持“计数”——比如C、Java等语言中经常使用的迭代:

fib = [0,1,1,2,3,5,8]
for number in fib:
    print number

因此,在您的示例中,“range”[1101]是包含从1到100的所有数字的列表(object_list),“number”是迭代器(object),它取代了Java/C++代码段将在第一个
i++
之前停止执行的每个数字

,因为
返回值
。谢谢。这使它更容易。递增过程是什么?range()返回一个序列(行为类似于数字列表的抽象),并且“for number in…”被称为“迭代序列”。在C版本中没有精确的序列模拟,但是范围序列元素之间的关系是“递增”发生的地方。
for(i = 0; i < 10; i++){
...
}
for object in object_list
    ....