Files
live-campus-mcs-p-2027.2/Semaine_11/Jour_01/inventaire.py
T
gauvainboiche 0d071d2843 Semaine 11
2026-07-11 21:38:00 +02:00

35 lines
1.5 KiB
Python

"""
**Consignes :**
1. Calculez le **nombre total** d'équipements et le **nombre d'équipements actifs**.
2. Construisez la **liste des hostnames** dont le `type` est `"switch"`.
3. Calculez la **latence moyenne des équipements actifs**.
4. Affichez un rapport lisible (une ligne par indicateur), latence arrondie à **2 décimales**.
"""
equipements = [
{"hostname": "srv-web-01", "ip": "192.168.1.10", "type": "serveur", "actif": True, "latence_ms": 12.4},
{"hostname": "sw-access-02", "ip": "192.168.1.2", "type": "switch", "actif": True, "latence_ms": 1.2},
{"hostname": "rtr-core-01", "ip": "10.0.0.1", "type": "routeur", "actif": False, "latence_ms": 3.5},
{"hostname": "sw-access-03", "ip": "192.168.1.3", "type": "switch", "actif": True, "latence_ms": 1.8},
]
# 1. Nombre total d'équipements
def total_equipments(equipments):
return f"{len(equipements)} équipements au total, {sum(e["actif"]for e in equipements)} actifs."
# 2. Liste des noms d'hôtes de type "Switch"
def name_equipments(equipments):
return (e["hostname"] for e in equipments if e["type"]=="switch")
# 3. Calcul de la latence moyenne des équipements actifs
def latency_equipments(equipments):
return f"{sum(e['latence_ms'] for e in equipments if e['actif']) / sum(e['actif'] for e in equipements):.2f}"
# 4. Rapport lisible avec une ligne par indicateur
print(total_equipments(equipements))
print(list(name_equipments(equipements)))
print(latency_equipments(equipements))