je bute sur un exercice de France IOI dont voici la consigne :
Grâce à un certain nombre d'informateurs plus ou moins fiables, le chef de la police a recueilli des indications qui devraient lui permettre enfin de démasquer cet espion qui lui échappe depuis des semaines. La population de la ville étant relativement importante, il vous demande votre aide afin d'automatiser un peu les choses. Vous devez estimer la probabilité qu'une personne soit un espion.
Ce que doit faire votre programme :
Votre programme doit lire entier : un nombre de personnes à considérer. Ensuite, pour chaque personne, il doit lire son signalement sous la forme de cinq entiers : sa taille en centimètres, son âge en années, son poids en kilogrammes, un entier valant 1 si la personne possède un cheval et 0 sinon, et un entier valant 1 si la personne à les cheveux bruns et 0 sinon.
On veut déterminer pour chaque personne à quel point elle correspond aux 5 critères suivants :
il aurait une taille supérieure ou égale à 178 cm et inférieure ou égale à 182 cm ;
il aurait au moins 34 ans ;
il pèserait strictement moins de 70 kg ;
il n'a pas de cheval ;
il a les cheveux bruns.
Lorsque cela n'est pas précisé explicitement, les inégalités sont au sens large.
Pour chaque personne, vous devez tester tous les critères. S'ils sont vérifiés tous les 5, vous devez afficher « Très probable ». Si seulement 3 ou 4 sont vérifiés, vous devez afficher « Probable ». Si aucun n'est vérifié, vous devez afficher « Impossible », et dans les autres cas, vous devez afficher « Peu probable ».
Ci-dessous mon code (le code ayant échoué au test 1 et 2 mais réussi au 3ème) :
Quand tu arrives sur tes conditions tu veux que ton code vérifie critère par critère, la ce que tu as écrit équivaut à : Si le suspect à une taille comprise entre 178cm et 182cm alors ne pas tester les autres critères.
Il faut que tu tests tes critères avec des simples "if"
if taille >= 178 and taille <= 182 :
criteres = criteres + 1
if age >=34:
criteres = criteres + 1
if poids <70:
criteres = criteres + 1
if cheval == 0:
criteres = criteres + 1
if cheveux == 1:
criteres = criteres + 1
J'ai voulu trop en faire avec cette fonction "sinon si"; mais c'est vrai que l'on cherche à savoir si les conditions sont respectés à chaque fois, j'ai bien compris la logique.
cela étant la solution commencée devrait finir par passer, les if/elif de la fin étant eux parfaitement justifiés.
Sinon, pour ceux qui connaissent déjà un peu Python, l'exercice passe avec une seule instruction (et donc une seule ligne de code). Pour cela introduire la liste
Je rencontre également un petit souci quant à cet exercice; mon code est le suivant :
nbPersonnes = int(input())
for loop in range (nbPersonnes):
taille = int(input())
age = int(input())
poids = int(input())
cheval = int(input())
cheveux = int(input())
critere = 0
if taille >= 178 and taille <= 182:
critere = critere + 1
if age >= 34:
critere = critere + 1
if poids < 70:
critere = critere + 1
if cheval == 0:
critere = critere + 1
if cheveux == 1:
critere = critere + 1
if critere == 5 :
print ("Très probable")
if critere >= 3 :
print ("Probable")
if critere == 0 :
print ("Impossible")
else :
print ("Peu probable")
Le programme me donne ces premiers éléments de réponse : Probable Peu probable Peu probable au lieu de : Peu probable Probable Peu probable quelqu'un saurait il m'expliquer où se situe mon erreur s'il vous plait ? Je ne suis pas certaine des derniers if et du else :/
Bonjour, je suis désolée de deterrer ce sujet mais je ne vois pas outrement :'( SOS svp! Est-ce qqn pourrais me dire où est l'erreur ? J'ai déjà lis et relis la discussion en haut mais je ne comprends pas ce que pourrais être. Merci d'avance
suspects = int(input())
for x in range(suspects):
age = int(input())
taille = int(input())
kg = int(input())
cheval = int(input())
brun = int(input())
probabilite = 0
if 178 <= taille <= 182:
probabilite += 1
if age >= 34:
probabilite += 1
if kg < 70:
probabilite += 1
if cheval == 0:
probabilite += 1
if brun == 1:
probabilite += 1
elif probabilite == 5 :
print("Très probable")
elif 3 <= probabilite <= 4:
print("Probable")
elif 1 <= probabilite <= 2:
print("Peu probable")
elif probabilite == 0:
print("Impossible")
Ahh ce n'est pas venue à l'esprit que l'ordre des inputs c'était important Merci Pascal. Par contre, je rien change sur la ligne 20, et ça a passé. Merci et bon confinement
Par contre, je rien change sur la ligne 20, et ça a passé.
Tu as modifié le code et maintenant c'est à la ligne 22 l'erreur et le code ne passe pas ls tests de fioi :
suspects = int(input())
for x in range(suspects):
taille = int(input())
age = int(input())
kg = int(input())
cheval = int(input())
brun = int(input())
probabilite = 0
if 178 <= taille <= 182:
probabilite += 1
if age >= 34:
probabilite += 1
if kg < 70:
probabilite += 1
if cheval == 0:
probabilite += 1
if brun == 1:
probabilite += 1
elif probabilite == 5 : # <-- FAUX
print("Très probable")
elif 3 <= probabilite <= 4:
print("Probable")
elif 1 <= probabilite <= 2:
print("Peu probable")
elif probabilite == 0:
print("Impossible")
Ahh siiiii Effectivement, j'avais essayé tellement de trucs qui j'ai fini par collé ici le mauvais code avec 'elif' au début, alors que pour moi javais déjà corrigé, qu'on dois commencer par 'if' et non pas elif, ça je savais ce juste que, à un moment donné, j'étais obligé de faire des modifications de genre pour voir si s'allait fonctionné
Aide exercice France IOI - L espion démasqué !
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Try->Fail->Learn->Converge to success :
Découverte Python Doc Tkinter Les chaînes de caractères
Découverte Python Doc Tkinter Les chaînes de caractères
Découverte Python Doc Tkinter Les chaînes de caractères
Découverte Python Doc Tkinter Les chaînes de caractères