### un fichier python doit avoir une extension en .py ### un nom de fonction ou de variable ne doit pas comporter d'espace ### une documentation de fonction doit être entre """ """ et pas *** *** ### vous n'avez pas testé vos fonctions ### structure for ligne in pas if ### et j'en passe ... des approximations pratiquement à toutes les lignes 4 erreurs juste dans la première fonction ### j'ai corrigé 17 lignes pour faire fonctionner le programme ### le pourcentage de réussite de fonctionne pas ### pour le calcul totatl des points il faut prendre en compte les lancers francs ### note : 7 def charger_donnees (fichiers): #il ne faut pas d'espace dans le nom de la fonction #***Charge les donnees depuis un fichier texte et retourne une liste de tuples.*** donnees = [] with open (fichiers, "r")as f: #il faut choisir soit fichiers soit fichier for ligne in f: # in pas if elements = ligne.strip().split() #line ou ligne? if len (elements) == 4: joueur, action, x,y = elements donnees.append((joueur, action, int(x), int(y))) # c'est un point pas une virgule ... return donnees def reussite(donnees, joueur, action): #***Retourne le nombre de tentatives et reussites pour un joueur et une action donnees.*** tentatives = 0 reussites = 0 for j, a, _, _ in donnees: # il faut mettre : et un espace avant in if j == joueur and action in a: tentatives += 1 if a == action + "reussi": reussites += 1 return tentatives, reussites def points (x, y): #***Determine le nombre de points en fonction de la position du tir.*** if (x - 0) ** 2+ ( y- 300) ** 2<= 150 ** 2 or (x - 1000) ** 2 + (y - 300) ** 2 <= 150** 2: return 2 return 3 def totalPoints(donnees, joueur): #***Calcule le total de points marqués par un joueur*** total = 0 for j,a,x,y in donnees: if j == joueur and a == "tir-reussi": total += points (x,y) return total def rebondsPasses( donnees, joueur): # il faut mettre : #***Retoune le nombre de rebonds et de passes d un joueur.*** rebonds = 0 passes = 0 for j, a, _, _ in donnees: if j == joueur: if"rebonds" in a : rebonds += 1 elif a == "passe": passes += 1 return rebonds, passes def manque (donnees, joueur): #***Retourne le nombre d actions manquees par un joueur.*** tirs_manques = 0 pertes = 0 for j, a, _, _ in donnees: if j == joueur: if a == "tir-manque": tir_manques += 1 elif a == "perteBalle": pertes += 1 return tirs_manques + pertes def afficheStats(donnees, joueur): #***Affiche les statistiques completes d un joueur.*** points_marques = totalPoints(donnees, joueur) tentatives, reussites = reussite( donnees, joueur, "tir") rebonds, passes = rebondsPasses(donnees,joueur) poucentage = (reussites / tentatives * 100) if tentatives > 0 else 0 print("Statistiques de", joueur) print("-Points marques:", points_marques) print("-Reussite au tir:", round(poucentage, 2), "%") #pourcentage ou poucentage ? print("-Rebonds:", rebonds, "passes", passes) #Chargements des donnees et tests fichier_stats = "stats.txt" # ce n'est pas le fichier qui était donné, stats.txt pour le bon pas stats.odf donnees = charger_donnees(fichier_stats) afficheStats(donnees, "J1")