Python for循环如何知道增量

Python for循环如何知道增量,python,for-loop,Python,For Loop,定义斐波那契序列时,使用了以下代码: def fibonacci(n): current=0 after=1 for i in range(1,n): current,after=after,current+after return after for循环如何知道每次通过时递增1?我尝试使用while循环while e默认情况下,如果您没有指定范围内I的步长(开始、停止、步骤),则增量将被视为一个增量,否则您指定的就是您的步长。默认情况下,如果您

定义斐波那契序列时,使用了以下代码:

def fibonacci(n):
    current=0
    after=1
    for i in range(1,n):
        current,after=after,current+after
    return after

for循环如何知道每次通过时递增1?我尝试使用while循环
while e默认情况下,如果您没有指定范围内I的步长(开始、停止、步骤),则增量将被视为一个增量,否则您指定的就是您的步长。

默认情况下,如果您没有指定范围内I的步长(开始、停止、步骤)增量被视为一个增量,否则它就是您指定的步骤。

python中的for循环会迭代项或生成器。在您的示例中,
range(1,n)
将返回python2中
[1,n)
之间元素的
列表,或者返回将
生成python3中相同项的生成器

本质上,
for
循环可以迭代任何类型的iterables:

它将打印1、6、8和9

使用
范围
,有第三个可选参数,可用于指定增量:

range(1, 10, 1)  # The defaut [1 .. 9] numbers
range(1, 10, 2)  # From 1 until 9 with 2 of increment

python中的for循环迭代项目或生成器。在您的示例中,
range(1,n)
将返回python2中
[1,n)
之间元素的
列表,或者返回将
生成python3中相同项目的生成器

本质上,
for
循环可以迭代任何类型的iterables:

它将打印1、6、8和9

使用
范围
,有第三个可选参数,可用于指定增量:

range(1, 10, 1)  # The defaut [1 .. 9] numbers
range(1, 10, 2)  # From 1 until 9 with 2 of increment
for
循环不会递增,而是迭代 for
循环的
不是递增的,而是要求所谓的iterable提供要使用的值

在您的示例中,iterable是
范围(1,n)

在Python2.x中,
范围(1,n)
创建了一个值列表,而
for
循环只要求列表在每次运行中提供下一个值,直到列表中的值被耗尽为止

在Python3.x中,
范围(1,n)
经过优化,并返回特殊的iterable类型
,当
要求
循环提供下一个值时,它将提供它。

for
循环不会递增,而是迭代 for
循环的
不是递增的,而是要求所谓的iterable提供要使用的值

在您的示例中,iterable是
范围(1,n)

在Python2.x中,
范围(1,n)
创建了一个值列表,而
for
循环只要求列表在每次运行中提供下一个值,直到列表中的值被耗尽为止


在Python3.x中,
范围(1,n)
经过优化并返回特殊的iterable类型
,当
要求
循环提供下一个值时,该类型将提供下一个值。

这里的技巧是循环不递增,它只在列表上迭代。
范围
生成一个列表,其中的数字从
1
n
。您可以在
在这里循环,但是您必须在循环开始之前定义
e
,并在循环中自己递增,因此只使用
for
循环更简单。请注意,您的
for
循环实际上没有使用
i
的值,但这很好。一些Python程序员会像
那样为_在范围(1,n)中:
表示循环体中没有使用循环索引变量。顺便说一句,您的函数不太正确:对于
fibonacci(0),它应该返回0
。这里的技巧是循环不递增,它只在一个列表上迭代。
range
生成一个列表,其中的数字从
1
n
。您可以在这里使用
循环,但您必须在循环开始之前定义
e
,并在循环中自己递增,因此它是si只需使用
for
循环即可。请注意,您的
for
循环实际上并没有使用
i
的值,但这很好。一些Python程序员会将其编写为
for u,范围为(1,n):
表示循环体中没有使用循环索引变量。顺便说一句,您的函数不太正确:对于
fibonacci(0),它应该返回0
.True,但这是
范围
函数的一个属性;
for
对此一无所知。True,但这是
范围
函数的一个属性;
for
对此一无所知。