0
我被告知創建一個類,輸出大小,最小值,最大值等,而不使用列表,並使屬性主要在def添加..我的屬性工作正常部分,但由於某種原因,我不能達到最低限度。任何人都可以給我一個正確的方向,並告訴我,如果我正在走這條正確的道路嗎?最低限度不使用列表
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
完全合理。一個便宜又快樂的選擇是用float(' - inf')'和float('inf')'來初始化max/min。那麼在這段代碼中不需要特殊情況。不利的一面是,在「add」完全沒有被調用的情況下,即沒有分數的情況下,結果稍微有用。 –
@SteveJessop,謝謝,沒有想到這一點。這種方法還可以將if語句簡化爲簡單的'min' /'max'調用。我已經看到'inf'和'-inf'是許多算法的完全有效的初始值,所以這只是一個慣例或在這種情況下輸出格式。 –
非常感謝。我覺得是這樣,我只是不知道該怎麼去做。現在我知道更好。 –