2
def garden(seedList):
  flower = [2, 5, 12]
  flowers = []
  for each in range(len(seedList)):
    totalFlowers = flowers.append(seedList[each] * flower[each])
    x = sum(totalFlowers)
  return totalFlowers

エラーが発生しています:The error was:iteration over non-sequence Inappropriate argument type. An attempt was made to call a function with a parameter of an invalid type. This means that you did something such as trying to pass a string to a method that is expecting an integer.

私が解決する必要がある問題:

花の種類ごとに種子の数を指定して、花の総量を計算する関数を作成します。seedList パラメータには、持っているシードの量が含まれます。各種子は一定数の花を咲かせます。ペチュニアの種1つで2輪、デイジーの種1つで5輪の花が咲きます。バラの種 1 つで 12 個の花ができます。各種類の花の種です。seedList パラメータには、持っているシードの量が含まれます。庭に植える花の総数を整数で返す必要があります。

4

1 に答える 1

6

問題はlist.append、その場でリストを変更して を返すことNoneです。

totalFlowers = flowers.append(seedList[each] * flower[each])

だからあなたのコードは実際にやっています:

x = sum(None)

コードの作業バージョン:

def garden(seedList):
  flower = [2, 5, 12]
  flowers = []
  for each in range(len(seedList)):
      flowers.append(seedList[each] * flower[each])

  return sum(flowers)

を使用したより良いソリューションソリューションzip:

def garden(seedList):
  flower = [2, 5, 12]
  totalFlowers = sum ( x*y for x,y in zip(flower, seedList) )
  return totalFlowers
于 2013-05-30T00:03:40.723 に答える