我想解决我大学的一门学科,因此,我必须创建一个具有parametres(* args)的函数。在那之后,我必须找到所有的平均值。继续使用数学类型..我们必须打印出每个元素的抽象平方-平均值,我必须使用Generator。例如:我有一个函数“ squares(* args)。当我像“ squares(3,4,5)”那样调用它时,我们找到平均值,例如4,然后开始抽象。 3-4、4、4、5,-4,但我们也需要平方。所以(3-4)** 2等我有这段代码,但是..不起作用,知道吗?
from statistics import mean
def squares(*args):
avg=mean(args)
i = 0
while (i <= len(args)):
yield (args[i]-avg)**2
i=i+1
squares(2, 7, 3, 12)
for k in squares():
print(k)
问题在这里:
squares(2, 7, 3, 12)
for k in squares():
print(k)
您第一次调用squares()
-返回您丢弃的生成器对象(您没有将其分配给变量)。然后您再次调用它并遍历返回的生成器,但是由于您未传递任何参数,因此生成器为“空”(它没有任何结果)并且for循环的主体无法执行。
IOW,将其替换为:
squared = squares(2, 7, 3, 12)
for k in squared:
print(k)
或者只是简单地:
for k in squares(2, 7, 3, 12):
print(k)
注意:我没有测试您的代码,它可能还有其他问题...