Correction alternative de certains problèmes
Votre programme devra lire trois entiers : le nombre total de mesures envisagées ainsi que la température minimum et maximum autorisées. Les entiers suivants seront les différentes températures relevées au cours du temps.
Tant que les températures relevées restent dans le bon intervalle, votre programme devra écrire le texte « Rien à signaler », mais dès que la température n'est pas bonne il doit écrire le texte « Alerte !! » et s'arrêter.
entrée :
5 10 20 15 10 20 0 15
sortie :
Rien à signaler Rien à signaler Rien à signaler Alerte !!
entrée :
3 0 100 15 50 75
sortie :
Rien à signaler Rien à signaler Rien à signaler
nbMesures = int(input()) tempMin = int(input()) tempMax = int(input()) numMesure = 0 tempValide = True while numMesure < nbMesures and tempValide: température = int(input()) tempValide = (tempMin <= température and température <= tempMax) if tempValide: print("Rien à signaler") else: print("Alerte !!") numMesure = numMesure + 1
On peut aussi utiliser un break
pour sortir prématurément d'une boucle for
.
nb_mesures = int(input()) temp_min = int(input()) temp_max = int(input()) for _ in range(nb_mesures): temp = int(input()) if temp_min <= temp <= temp_max: print("Rien à signaler") else: print("Alerte !!") break
⚠️ Attention, ce style n'est pas toujours apprécié, parfois oui.
Quel est le problème principal ?
nb_mesures = int(input()) temp_min = int(input()) temp_max = int(input()) alerte = False for _ in range(nb_mesures): temp = int(input()) if not(alerte) and (temp_min <= temp <= temp_max): print("Rien à signaler") else: if not alerte: print("Alerte !!") alerte = True
Ce code lit bien toute l'entrée et n'affiche qu'une fois au maximum "Alerte !!"
.