[英]how to print args from a Generator in Python?
我想在我的大學解決一個主題,所以我必須創建一個帶有參數(* args)的函數。 之后,我必須找到所有這些的平均值。 繼續數學類型..我們必須打印出每個元素的抽象平方 - 平均值,我必須使用生成器。 例如:我有函數“squares(*args)。當我把它稱為“squares(3,4,5)”時,我們找到平均值,這個eg為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)
注意:我沒有測試你的代碼,它可能有其他問題......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.