Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -719,6 +719,54 @@ fertilizers_db = {
|
|
719 |
|
720 |
|
721 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
722 |
|
723 |
|
724 |
|
|
|
719 |
|
720 |
|
721 |
|
722 |
+
class HydroCalculator:
|
723 |
+
def __init__(self, volume_liters=1.0):
|
724 |
+
self.volume = volume_liters # Объём воды в литрах
|
725 |
+
self.fertilizers = [] # Список: (удобрение, граммы)
|
726 |
+
|
727 |
+
def add_fertilizer(self, name, grams):
|
728 |
+
"""Добавляет удобрение в раствор."""
|
729 |
+
if name not in fertilizers_db:
|
730 |
+
raise ValueError(f"Удобрение '{name}' не найдено в базе!")
|
731 |
+
self.fertilizers.append((name, grams))
|
732 |
+
|
733 |
+
def calculate_ppm(self):
|
734 |
+
"""Считает концентрации элементов в ppm (мг/литр)."""
|
735 |
+
ppm = {}
|
736 |
+
for name, grams in self.fertilizers:
|
737 |
+
for element, ratio in fertilizers_db[name].items():
|
738 |
+
ppm[element] = ppm.get(element, 0) + (grams * ratio * 1000) / self.volume
|
739 |
+
return ppm
|
740 |
+
|
741 |
+
def print_report(self):
|
742 |
+
"""Печатает красивый отчёт."""
|
743 |
+
ppm = self.calculate_ppm()
|
744 |
+
print("\nРезультат расчёта:")
|
745 |
+
print("-" * 40)
|
746 |
+
for element, value in ppm.items():
|
747 |
+
print(f"{element}: {value:.2f} ppm")
|
748 |
+
print("-" * 40)
|
749 |
+
|
750 |
+
|
751 |
+
|
752 |
+
|
753 |
+
|
754 |
+
|
755 |
+
|
756 |
+
|
757 |
+
|
758 |
+
|
759 |
+
|
760 |
+
|
761 |
+
# Создаём раствор на 10 литров
|
762 |
+
calc = HydroCalculator(volume_liters=10)
|
763 |
+
|
764 |
+
# Добавляем удобрения (название из базы + граммы)
|
765 |
+
calc.add_fertilizer("Кальциевая селитра", 100) # 100 г
|
766 |
+
calc.add_fertilizer("Сульфат магния", 50) # 50 г
|
767 |
+
|
768 |
+
# Выводим отчёт
|
769 |
+
calc.print_report()
|
770 |
|
771 |
|
772 |
|