使用return和print关键字时输出的差异



deffunc1 (*args):对于args中的I:打印(i)

func1(10年,20年,34)


在上面的代码中,我以如下所示的方式得到输出:

1020.30

现在,当我以这种方式编码时,我不会得到与上面编码相同的输出。

def func1 (* args):对于args中的I:返回(我)

打印(func1(10年,20年,30))

--------- 输出,10

? ?为什么这里只打印10,而不是参数中传递的所有值?

??为什么这里只打印10,而不是参数中传递的所有值?

循环for i in args: …将通过体运行三次,每个参数10,2030都运行一次,但只有在没有过早退出的情况下,并且当您使用return(i)时,只发生在参数10的第一次循环运行中,因为return立即离开函数并且没有回来。

另一种选择是

def func1(*args):
for i in args: yield i

有了它,你可以print(*func1(10, 20, 30))

最新更新