在python中从一个函数到另一个函数返回for循环的值



我想实现这个

for i in range(1,10):
print(i)

但使用不同的函数,将for循环的值放入名为valuee的变量,然后作为clamp函数的参数,然后打印它。为什么我只得到1?而不是从1->9?

def clamp(valuee):
print(valuee)
def value():
for i in range(1,10):
return i
valuee=value()
clamp(valuee)     

如果使用return,将结束函数。您正在寻找发电机;将CCD_ 4改为CCD_。

def clamp(valuee):
print(valuee)
def value():
for i in range(1,10):
yield i

你可以通过两种方式使用你的生成器:在一个循环内

for valuee in value():
clamp(valuee)

或者,正如您最初想要的那样,但您必须添加关键字next:

def clamp(valuee):
print(valuee)
def value():
for i in range(1,10):
yield i

valuee = value()
clamp(next(valuee))
clamp(next(valuee))
clamp(next(valuee))
...

它没有打印所有的值,因为在value((方法中,您使用return,当循环中i=1时,value((返回1并退出函数和循环。你可以使用。。。def clamp(valuee(:打印(估价(

def value((:对于范围(1,10(中的i:夹具(i(value((

最新更新