# Скрипт за анализ на продажни данни
class SalesAnalysis:
def __init__(self, data):
"""Инициализация на класа с входни данни"""
self.data = data
self.quantities = [item['quantity'] for item in data]
self.prices = [item['price'] for item in data]
self.products = [item['product'] for item in data]
def calculate_total_value(self):
"""Изчисляване на обща стойност на продажбите"""
return sum([item['quantity'] * item['price'] for item in self.data])
def statistical_analysis(self):
"""Извършване на подробен статистически анализ"""
# Ръчно изчисляване на средно без statistics
average_quantity = sum(self.quantities) / len(self.quantities)
# Ръчно изчисляване на медиана
sorted_quantities = sorted(self.quantities)
length = len(sorted_quantities)
median_quantity = (
sorted_quantities[length // 2]
if length % 2 != 0
else (sorted_quantities[length // 2 - 1] + sorted_quantities[length // 2]) / 2
)
# Ръчно изчисляване на стандартно отклонение
variance = sum((x - average_quantity) ** 2 for x in self.quantities) / len(self.quantities)
standard_deviation = variance ** 0.5
results = {
"обща_стойност": round(self.calculate_total_value(), 2),
"средно_количество": round(average_quantity, 2),
"медиана_количество": median_quantity,
"макс_количество": max(self.quantities),
"мин_количество": min(self.quantities),
"стандартно_отклонение": round(standard_deviation, 2),
"средна_цена": round(sum(self.prices) / len(self.prices), 2),
"най_скъп_продукт": max(self.data, key=lambda x: x['price'])['product'],
"найевтин_продукт": min(self.data, key=lambda x: x['price'])['product']
}
return results
def diagnostic_report(self):
"""Генериране на подробен диагностичен отчет"""
analysis = self.statistical_analysis()
print("=" * 50)
print("🔍 ПОДРОБЕН АНАЛИЗ НА ПРОДАЖБИТЕ")
print("=" * 50)
print("\n📊 Икономически показатели:")
for key, value in analysis.items():
print(f"{key}: {value}")
print("\n🔬 Допълнителни наблюдения:")
print(f"Най-продаван продукт: {max(zip(self.products, self.quantities), key=lambda x: x[1])[0]}")
print(f"Най-висока обща стойност: {max([item['quantity'] * item['price'] for item in self.data])}")
# Примерни данни
sales_data = [
{"product": "ябълки", "quantity": 50, "price": 1.20},
{"product": "круши", "quantity": 30, "price": 1.50},
{"product": "банани", "quantity": 40, "price": 0.80},
{"product": "праскови", "quantity": 25, "price": 2.00},
{"product": "киви", "quantity": 20, "price": 1.75}
]
# Основна логика
def main_function():
# Създаване на обект за анализ
analyzer = SalesAnalysis(sales_data)
# Генериране на диагностичен отчет
analyzer.diagnostic_report()
# Изпълнение на главната функция
main_function()