35 lines
1.5 KiB
Python
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)) |