Мне сказали сделать класс, который выводит размер, мин, макс и т. Д. Без использования списка и имеющих атрибуты в основном в def add..My-атрибуты работают нормально для большинства но по какой-то причине я не могу получить минимум. Может ли кто-нибудь дать мне быстрый толчок в правильном направлении и сказать мне, если я иду по правильному пути с этим?минимум без использования списков
class Dataset(object):
def __init__(self):
self.totalScore=0
self.countScore=0
self._highest=0
self._lowest=0
self.dev=0
self.mean=0
def add(self, score):
self.countScore= self.countScore + 1
self.totalScore= self.totalScore + score
self.mean=self.totalScore/self.countScore
self.dev=self.mean - score
if score > self._highest:
self._highest = score
if score < self._lowest:
self._lowest = score
def size(self):
return(self.countScore)
def min(self):
return (self._lowest)
def max(self):
return (self._highest)
мои результаты это:
This is a program to compute the min, max, mean and
standard deviation for a set of numbers.
Enter a number (<Enter> to quit): 50
Enter a number (<Enter> to quit): 60
Enter a number (<Enter> to quit):
Summary of 2 scores.
Min: 0
Max: 60.0
Mean: 55.0
Standard Deviation: 7.0710678118654755
Совершенно разумно. Дешевой и жизнерадостной альтернативой является инициализация max/min с помощью 'float ('- inf')' и 'float ('inf')'. Тогда нет необходимости в специальном случае в этом коде. Недостатком является то, что результат немного менее полезен в случае, когда 'add' вообще не вызывается, т. Е. Нет баллов. –
@SteveJessop, спасибо, не подумал об этом. Этот подход также уменьшает if-утверждения до простых вызовов 'min' /' max'. Я видел, что 'inf' и' -inf' являются полностью допустимыми начальными значениями для ряда алгоритмов, поэтому это просто вопрос соглашения или, в данном случае, форматирование вывода. –
Большое вам спасибо. Я подумал, что это так, я просто не знал, как это сделать. Теперь я знаю лучше. –