2014-12-01 3 views
0

Я написал следующий класс:Python Ошибка типа классов «нет атрибута __getitem___

class Average(object): 

def __init__(self,invoer): 
    self.regel = invoer 
    self.persons = [] 

def parse_input(self):   
    lengte = self.regel.split('\t')[2] 
    gewicht = self.regel.split('\t')[3] 
    self.lengte = float(lengte) 
    self.gewicht = float(gewicht) 
    return self.lengte, self.gewicht 

def add_person(self): 
    self.persons += [self.lengte, self.gewicht] 

def get_average_bmi(self): 
    total_bmi = 0 
    for i in self.persons: 
     total_bmi += i[0]/i[1] 
    average_bmi = total_bmi/len(self.persons) 
    self.average = average_bmi 
    return self.average 

И программа выглядит следующим образом:

from BodyMassIndex import Average 
from ipy_lib import file_input 

bestand = file_input().splitlines() 

for i in bestand: 
    bmi = Average(i) 
    bmi.parse_input() 
    bmi.add_person() 
average_bmi = bmi.get_average_bmi() 

вход, который поставляется в переменной bestand выглядит следующим образом метод

Barbara Lerner V 1.54 67 No 
Danny Coronado M 1.84 89 No 
Diana Knox V 1.69 58 Yes 
Penney Rose V 1.56 102 No 
Jessica Richman V 1.58 63 Yes 

parse_input() принимает длину собственной высоты системы каждого человека, add_person добавляет его в список и г t_average_bmi должен рассчитать bmi каждого списка в этом списке и рассчитать среднее значение этого.

Однако, я получаю эту ошибку: total_bmi + = я [0]/я [1] TypeError: 'Поплавок' объект не имеет атрибута 'GetItem'

Что происходит неправильно в этом коде ?

ответ

0

Вы хотите, чтобы исправить add_person():

def add_person(self): 
    self.persons.append([self.lengte, self.gewicht]) 
Смежные вопросы