Ваш код выглядит вполне неплохо, но не хватает реализации метода `get_result` в классе `MedianValue`. Давайте рассмотрим, как его можно реализовать, чтобы корректно рассчитывать медиану, а также пройдемся по коду на предмет возможных улучшений.
Вот исправленный код, включая реализацию для медианы:
```python
class MinValue:
def __init__(self):
self.data = []
def add(self, number):
self.data.append(number)
def get_result(self):
if self.data:
return min(self.data)
return None
class MaxValue:
def __init__(self):
self.data = []
def add(self, number):
self.data.append(number)
def get_result(self):
if self.data:
return max(self.data)
return None
class MeanValue:
def __init__(self):
self.data = []
def add(self, number):
self.data.append(number)
def get_result(self):
if self.data:
return sum(self.data) / len(self.data)
return None
class MedianValue:
def __init__(self):
self.data = []
def add(self, number):
self.data.append(number)
def get_result(self):
if not self.data:
return None
sorted_data = sorted(self.data)
n = len(sorted_data)
mid = n // 2
if n % 2 == 0:
return (sorted_data[mid - 1] + sorted_data[mid]) / 2
else:
return sorted_data[mid]
# Пример использования
min_val = MinValue()
min_val.add(5)
min_val.add(1)
min_val.add(3)
print(min_val.get_result()) # 1
max_val = MaxValue()
max_val.add(5)
max_val.add(1)
max_val.add(3)
print(max_val.get_result()) # 5
mean_val = MeanValue()
mean_val.add(5)
mean_val.add(1)
mean_val.add(3)
print(mean_val.get_result()) # 3.0
median_val = MedianValue()
median_val.add(5)
median_val.add(1)
median_val.add(3)
print(median_val.get_result()) # 3
```
### Пояснения:
1. **MedianValue**:
- Мы сортируем список `self.data`, прежде чем вычислять медиану.
- Если количество элементов четное, медиана — это среднее значение двух центральных элементов.
- Если количество элементов нечетное, медиана — это центральный элемент.
2. **Проверка на пустой список**: Все классы проверяют, содержит ли `self.data` элементы, прежде чем пытаться вычислить результат, в случае чего возвращая `None`.
Если после этих изменений у вас остались проблемы с тестами, пожалуйста, уточните, какие именно тесты не проходят, и мы попробуем разобраться вместе.