Correction alternative de certains problèmes
Votre programme doit d'abord lire un entier décrivant votre position actuelle sur la route, sous la forme d'un nombre de kilomètres par rapport au début de la route. Ensuite, il doit lire un entier donnant le nombre de villages. Pour chaque village, il doit lire un entier décrivant la position de ce village le long de cette même route. Votre programme doit alors afficher le nombre de villages qui se trouvent à une distance inférieure ou égale à 50 km de votre position actuelle.
entrée :
120 5 30 113 187 145 129
sortie :
3
posActuelle = int(input()) nbVillages = int(input()) nbAccessibles = 0 for loop in range(nbVillages): posVillage = int(input()) ecart = posActuelle - posVillage if ecart < 0: ecart = -ecart if ecart <= 50: nbAccessibles = nbAccessibles + 1 print(nbAccessibles)
différence
, ensuiteif différence > 0: écart = différence else: écart = - différence
position_actuelle = int(input()) nb_villages = int(input()) nb_villages_proches = 0 for _ in range(nb_villages): position_village = int(input()) if abs(position_actuelle - position_village) <= 50: nb_villages_proches += 1 print(nb_villages_proches)
Variante fonctionnelle
position_actuelle = int(input()) nb_villages = int(input()) positions_villages = iter(int(input()) for _ in range(nb_villages)) print(sum(1 for x in positions_villages if abs(position_actuelle - x) <= 50))
Remarque : iter
ne fabrique pas la liste positions_villages
, mais plutôt un itérateur qui va donner élément par élément les positions dans la boucle suivante. Utile lorsqu'on n'a pas besoin de conserver en mémoire toute la liste, mais plutôt traiter un à un ses éléments.
La méthode recommandée en NSI reste la liste en compréhension :
positions_villages = list(int(input()) for _ in range(nb_villages))
Votre programme doit d'abord lire un entier strictement positif, le nombre de jours de marche effectués jusqu'à présent. Il doit ensuite lire, pour chaque jour, la distance parcourue ce jour-là. Il doit alors afficher la distance maximale parcourue en une journée.
nbJours = int(input()) distanceMax = 0 for loop in range(nbJours): distance = int(input()) if distance > distanceMax: distanceMax = distance print(distanceMax)
Une solution dans un style fonctionnel
nb_jours = int(input()) distances = iter(int(input()) for _ in range(nb_jours)) print(max(distances))