簡體   English   中英

如何從 Python 中的生成器打印參數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM