Conditions et boucles
if et for : les deux mots-clés qui transforment une liste de sessions en réponse à une question métier.
🧠 Concept — if décide, for répète
Deux mots-clés couvrent l'essentiel de la logique que tu croiseras :
if: décider. « Si la session dure plus de 30 minutes, alors… sinon… »for: répéter. « Pour chaque session de la liste, fais ceci. »
Combinés, ils répondent à des questions métier : « combien de sessions longues ce mois-ci ? », « quelles stations ont un uptime sous 95 % ? », « y a-t-il des sessions à 0 kWh (borne en défaut ?) ».
Détail crucial pour LIRE du Python : l'indentation (le décalage en début de ligne) n'est pas décorative. Tout ce qui est décalé sous le for est répété ; tout ce qui est décalé sous le if est conditionnel. L'indentation EST la structure.
Compter les sessions longues
sessions = [
{"station": "Lyon-Confluence", "kwh": 42.5, "duree_min": 31},
{"station": "Vélizy 2", "kwh": 18.2, "duree_min": 14},
{"station": "Aire de Beaune", "kwh": 61.0, "duree_min": 38},
{"station": "Lyon-Confluence", "kwh": 8.1, "duree_min": 6},
{"station": "Nice Lingostière", "kwh": 55.3, "duree_min": 42},
]
sessions_longues = 0
for s in sessions: # pour CHAQUE session…
if s["duree_min"] > 30: # …si elle dépasse 30 min…
sessions_longues += 1 # …on ajoute 1 au compteur
print("Sessions > 30 min :", sessions_longues)
print("Soit", round(sessions_longues / len(sessions) * 100), "% du total")🎯 Que va afficher ce script ?
0/3 répondue · 0 juste1.Dans le script ci-dessus, que vaut sessions_longues à la fin ?
2.On remplace la condition par s["duree_min"] >= 31. Le résultat change-t-il ?
3.On dé-indente la ligne sessions_longues += 1 pour l'aligner sur le if. Que se passe-t-il ?
💡 Réflexe pro — Le réflexe de lecture
Devant une boucle inconnue, pose-toi 3 questions dans l'ordre : 1) sur quoi boucle-t-on (quelle liste) ? 2) quelle condition filtre (le if) ? 3) qu'accumule-t-on (compteur, somme, nouvelle liste) ? Avec ces 3 réponses, tu as compris 95 % des scripts d'analyse.