Python 什么是;对于生成器()中的i:“;做
有人能解释一下每一步的作用吗 我从未见过在X中使用“for I:”,其中X是一个生成器,我无法理解如果I没有插入到()之间,它是如何与函数交互的Python 什么是;对于生成器()中的i:“;做,python,for-loop,generator,Python,For Loop,Generator,有人能解释一下每一步的作用吗 我从未见过在X中使用“for I:”,其中X是一个生成器,我无法理解如果I没有插入到()之间,它是如何与函数交互的 for的范围仅限于表达式的范围。如果表达式调用一个函数,那么它的值就是从函数返回的值,因此for的范围超过该函数的结果 请注意,尽管这里的fib不是一个函数,但它是一个生成器。它依次生成每个步骤的值。for的范围仅限于表达式的范围。如果表达式调用一个函数,那么它的值就是从函数返回的值,因此for的范围超过该函数的结果 请注意,尽管这里的fib不是一个函
for
的范围仅限于表达式的范围。如果表达式调用一个函数,那么它的值就是从函数返回的值,因此for的范围超过该函数的结果
请注意,尽管这里的
fib
不是一个函数,但它是一个生成器。它依次生成每个步骤的值。for
的范围仅限于表达式的范围。如果表达式调用一个函数,那么它的值就是从函数返回的值,因此for的范围超过该函数的结果
请注意,尽管这里的
fib
不是一个函数,但它是一个生成器。它依次生成每个步骤的值。for
的范围仅限于表达式的范围。如果表达式调用一个函数,那么它的值就是从函数返回的值,因此for的范围超过该函数的结果
请注意,尽管这里的
fib
不是一个函数,但它是一个生成器。它依次生成每个步骤的值。for
的范围仅限于表达式的范围。如果表达式调用一个函数,那么它的值就是从函数返回的值,因此for的范围超过该函数的结果
请注意,尽管这里的
fib
不是一个函数,但它是一个生成器。它依次生成每个步骤的值。任何包含的函数都将返回一个。for循环运行该生成器以一次返回一个值
运行时:
for i in fib():
print(i)
发电机的实际运行机制包括:
_iterator = iter(fib())
while True:
try:
i = next(_iterator)
except StopIteration:
break
print(i)
如您所见,i变量被指定为调用生成器上的next()以获取下一个值的结果
希望这能清楚地说明i的来源:-)任何包含a的函数都将返回a。for循环运行该生成器以一次返回一个值 运行时:
for i in fib():
print(i)
发电机的实际运行机制包括:
_iterator = iter(fib())
while True:
try:
i = next(_iterator)
except StopIteration:
break
print(i)
如您所见,i变量被指定为调用生成器上的next()以获取下一个值的结果
希望这能清楚地说明i的来源:-)任何包含a的函数都将返回a。for循环运行该生成器以一次返回一个值 运行时:
for i in fib():
print(i)
发电机的实际运行机制包括:
_iterator = iter(fib())
while True:
try:
i = next(_iterator)
except StopIteration:
break
print(i)
如您所见,i变量被指定为调用生成器上的next()以获取下一个值的结果
希望这能清楚地说明i的来源:-)任何包含a的函数都将返回a。for循环运行该生成器以一次返回一个值 运行时:
for i in fib():
print(i)
发电机的实际运行机制包括:
_iterator = iter(fib())
while True:
try:
i = next(_iterator)
except StopIteration:
break
print(i)
如您所见,i变量被指定为调用生成器上的next()以获取下一个值的结果
希望这能清楚地说明i的来源:-)要理解这一点,您必须了解
yield
关键字的作用。请看一下:
现在你知道了,fib()
不是一个函数,而是一个生成器。
因此,在代码中:
def fib():
a, b = 0,1
while True:
yield b #from here value of b gets returned to the for statement
a,b = b, a + b
for i in fib():
print(i)
因为
而永远不会得到假值。它一直在运行。要理解这一点,您必须了解yield
关键字的作用。请看一下:
现在你知道了,fib()
不是一个函数,而是一个生成器。
因此,在代码中:
def fib():
a, b = 0,1
while True:
yield b #from here value of b gets returned to the for statement
a,b = b, a + b
for i in fib():
print(i)
因为而永远不会得到假值。它一直在运行。要理解这一点,您必须了解yield
关键字的作用。请看一下:
现在你知道了,fib()
不是一个函数,而是一个生成器。
因此,在代码中:
def fib():
a, b = 0,1
while True:
yield b #from here value of b gets returned to the for statement
a,b = b, a + b
for i in fib():
print(i)
因为而永远不会得到假值。它一直在运行。要理解这一点,您必须了解yield
关键字的作用。请看一下:
现在你知道了,fib()
不是一个函数,而是一个生成器。
因此,在代码中:
def fib():
a, b = 0,1
while True:
yield b #from here value of b gets returned to the for statement
a,b = b, a + b
for i in fib():
print(i)
因为而永远不会得到假值。它一直在运行。for loop
如果您像上面那样使用它,它会生成可丢弃的变量。例如,循环中反复使用列表对象
,但一次性迭代器在使用后会自动删除
而yield
是一个类似于return
的术语,用于函数中。它给出一个结果,并在循环中再次使用它。
你的代码给你的数字称为斐波那契
def fib():
a, b = 0,1 #initially a=0 and b=1
while True: #infinite loop term.
yield b #generate b and use it again.
a,b = b, a + b #a and b are now own their new values.
for i in fib(): #generate i using fib() function. i equals to b also thanks to yield term.
print(i) #i think you known this
if i>100:
break #we have to stop loop because of yield.
for循环
如果您像上面那样使用它,则会生成一次性变量。例如,循环中反复使用列表对象
,但一次性迭代器在使用后会自动删除
而yield
是一个类似于return
的术语,用于函数中。它给出一个结果,并在循环中再次使用它。
你的代码给你的数字称为斐波那契
def fib():
a, b = 0,1 #initially a=0 and b=1
while True: #infinite loop term.
yield b #generate b and use it again.
a,b = b, a + b #a and b are now own their new values.
for i in fib(): #generate i using fib() function. i equals to b also thanks to yield term.
print(i) #i think you known this
if i>100:
break #we have to stop loop because of yield.
for循环
如果您像上面那样使用它,则会生成一次性变量。例如,循环中反复使用列表对象
,但一次性迭代器在使用后会自动删除
而yield
是一个类似于return
的术语,用于函数中。它给出一个结果,并在循环中再次使用它。
你的代码给你的数字称为斐波那契
def fib():
a, b = 0,1 #initially a=0 and b=1
while True: #infinite loop term.
yield b #generate b and use it again.
a,b = b, a + b #a and b are now own their new values.
for i in fib(): #generate i using fib() function. i equals to b also thanks to yield term.
print(i) #i think you known this
if i>100:
break #we have to stop loop because of yield.
for循环
如果您像上面那样使用它,则会生成一次性变量。例如,循环中反复使用列表对象
,但一次性迭代器在使用后会自动删除
而yield
是一个类似于return
的术语,用于函数中。它给出一个结果,并在循环中再次使用它。
你的代码给你的数字称为斐波那契
def fib():
a, b = 0,1 #initially a=0 and b=1
while True: #infinite loop term.
yield b #generate b and use it again.
a,b = b, a + b #a and b are now own their new values.
for i in fib(): #generate i using fib() function. i equals to b also thanks to yield term.
print(i) #i think you known this
if i>100:
break #we have to stop loop because of yield.
我没有