self.food_list = [['apple', 100, 'Fruit', 384.0], ['orange', 100, 'Fruit', 384.0]]
3. の予想される出力はTotal calorie of all food is 768.0Kcal
TypeError例外:「食品」オブジェクトがサポートされていないインデックス私はインデックスから要素を合計する
def totalCalorie(self):
for i in range(0, len(self.food_list)):
j = self.food_list[i][3]
j += j
print("Total calorie of all food is {}Kcal".format(j))
である。しかし、次のエラーが出てきた:
Traceback (most recent call last):
File "D:/PythonTim/Assignment/nutritionDriver.py", line 60, in <module>
main()
File "D:/PythonTim/Assignment/nutritionDriver.py", line 43, in main
patient.totalCalorie()
File "D:\PythonTim\Assignment\nutritionApp.py", line 132, in totalCalorie
j = self.food_list[i][3]
TypeError: 'Food' object does not support indexing
私がしたいことは、ユーザーがリスト内のすべてのカロリーを合計したい場合、システムはリストからの総カロリーを表示することです。
別の方法がありますか?ありがとう!
EDIT:あなたのコードを実行しているとき、私は何の問題が表示されていない
class Food:
def __init__(self, name, quantity, category, calorie):
self.name = name
self.quantity = quantity
self.category = category
self.calorie = calorie
class FoodList:
def __init__(self):
self.food_list = []
def totalCalorie(self):
j=0
for i in self.food_list:
j += i[3]
print("Total calorie of all food is {}Kcal".format(j))
def addFood(self, newfruit):
self.food_list.append(newfruit)
name = input("Name? ")
quantity = input("Quantity? ")
category = input("Category? ")
calorie = input("Calorie? ")
f = Food(name, quantity, category, calorie)
patient = FoodList()
patient.addFood(f)
name1 = input("Name? ")
quantity1 = input("Quantity? ")
category1 = input("Category? ")
calorie1 = input("Calorie? ")
f1 = Food(name1, quantity1, category1, calorie1)
patient.addFood(f1)
patient.totalCalorie()
あなたはself.food_listに期待する価値があると確信していますか?私はあなたのコードをコピーするときに動作します。 (あなたのj + = jのロジックに欠陥がありますが、それはエラーの原因ではありません) –
クラス全体を提出してください –
タイプ(self.food_list)を印刷しようとするとどうなりますか? –