diff --git a/basket fin.py b/basket fin.py new file mode 100644 index 0000000..1aaac91 --- /dev/null +++ b/basket fin.py @@ -0,0 +1,87 @@ +### 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") \ No newline at end of file diff --git a/stats.txt b/stats.txt new file mode 100644 index 0000000..4b70bec --- /dev/null +++ b/stats.txt @@ -0,0 +1,197 @@ +J1 tir-reussi 68 288 +J1 tir-reussi 22 397 +J1 tir-reussi 848 183 +J1 tir-reussi 957 196 +J1 tir-reussi 859 387 +J1 tir-reussi 829 201 +J1 tir-manque 79 242 +J1 tir-manque 96 258 +J1 tir-manque 69 244 +J1 tir-manque 894 171 +J1 tir-manque 961 183 +J1 tir-manque 893 66 +J1 tir-manque 884 46 +J1 tir-manque 783 444 +J1 lancer-reu 187 306 +J1 lancer-rat 190 303 +J1 lancer-rat 818 302 +J1 lancer-rat 817 297 +J1 rebondOff 150 310 +J1 rebondOff 920 300 +J1 rebondOff 897 230 +J1 rebondOff 900 317 +J1 passe 50 280 +J1 passe 800 220 +J1 passe 720 336 +J1V rebondDef 100 360 +J2 tir-reussi 45 265 +J2 tir-reussi 58 266 +J2 tir-reussi 77 259 +J2 tir-reussi 63 310 +J2 tir-reussi 42 260 +J2 tir-reussi 974 269 +J2 tir-reussi 974 261 +J2 tir-reussi 967 309 +J2 tir-reussi 749 378 +J2 tir-reussi 970 321 +J2 tir-reussi 967 318 +J2 tir-reussi 977 256 +J2 tir-manque 20 330 +J2 tir-manque 37 261 +J2 tir-manque 100 253 +J2 tir-manque 60 76 +J2 tir-manque 223 179 +J2 tir-manque 971 301 +J2 tir-manque 926 305 +J2 tir-manque 953 324 +J2 lancer-reu 185 301 +J2 lancer-reu 815 297 +J2 lancer-rat 189 297 +J2 lancer-rat 816 290 +J2 rebondOff 920 286 +J2 passe 239 260 +J2V tir-reussi 928 330 +J2V tir-reussi 959 322 +J2V rebondDef 75 300 +J2V rebondDef 900 284 +J2V perteBalle 280 420 +J3 rebondOff 897 275 +J3 rebondDef 900 285 +J3 perteBalle 520 100 +J3V tir-reussi 84 265 +J3V tir-reussi 51 249 +J3V tir-reussi 135 438 +J3V tir-reussi 114 247 +J3V tir-manque 44 317 +J3V lancer-rat 815 300 +J3V lancer-rat 817 294 +J3V lancer-rat 184 300 +J3V rebondDef 900 330 +J3V perteBalle 450 200 +J3V perteBalle 223 398 +J4 rebondOff 100 280 +J4 rebondOff 50 380 +J4 perteBalle 150 250 +J4 passe 200 150 +J4V tir-reussi 928 258 +J4V tir-manque 814 158 +J4V tir-manque 43 270 +J4V lancer-reu 185 290 +J4V lancer-reu 183 295 +J4V lancer-rat 184 298 +J4V lancer-rat 185 294 +J4V perteBalle 750 423 +J5 tir-reussi 956 242 +J5 tir-manque 44 316 +J5 tir-manque 111 108 +J5 tir-manque 78 92 +J5 tir-manque 105 242 +J5 tir-manque 43 492 +J5 tir-manque 923 303 +J5 tir-manque 973 421 +J5 tir-manque 905 261 +J5 tir-manque 956 259 +J5 tir-manque 861 150 +J5V tir-reussi 181 229 +J6 tir-manque 80 294 +J6V tir-reussi 59 254 +J6V tir-manque 884 292 +J6V tir-manque 919 282 +J6V lancer-reu 817 301 +J6V lancer-rat 815 307 +J7 tir-reussi 929 265 +J7 tir-manque 155 154 +J7 tir-manque 176 183 +J7 tir-manque 41 79 +J7 tir-manque 982 314 +J7 tir-manque 974 326 +J7 tir-manque 919 262 +J7 tir-manque 810 299 +J7 tir-manque 871 172 +J7V tir-manque 976 323 +J7V tir-manque 59 326 +J8 tir-reussi 42 312 +J8 tir-reussi 57 270 +J8 tir-reussi 63 286 +J8 tir-reussi 35 273 +J8 tir-reussi 931 269 +J8 tir-reussi 928 292 +J8 tir-reussi 937 252 +J8 tir-manque 52 157 +J8 tir-manque 80 309 +J8 tir-manque 37 328 +J8 tir-manque 19 302 +J8 tir-manque 74 281 +J8 tir-manque 972 267 +J8 tir-manque 952 312 +J8 lancer-rat 183 297 +J8 lancer-rat 817 298 +J8 rebondOff 980 310 +J8V tir-reussi 981 319 +J8V tir-reussi 908 116 +J8V tir-reussi 975 317 +J8V tir-reussi 971 307 +J8V tir-reussi 971 307 +J8V tir-reussi 974 254 +J8V tir-reussi 945 366 +J8V tir-reussi 37 303 +J8V tir-reussi 49 423 +J8V tir-manque 899 260 +J8V tir-manque 53 264 +J8V tir-manque 59 249 +J8V lancer-rat 815 294 +J8V lancer-rat 816 304 +J8V rebondOff 900 280 +J8V rebondDef 100 320 +J8V rebondDef 880 331 +J8V passe 750 250 +J9 tir-reussi 78 280 +J9 tir-reussi 67 255 +J9 tir-reussi 41 263 +J9 tir-manque 55 460 +J9 tir-manque 34 290 +J9 tir-manque 936 292 +J9 tir-manque 947 265 +J9 tir-manque 963 261 +J9 tir-manque 941 306 +J9 lancer-rat 816 300 +J9 lancer-rat 819 302 +J9 lancer-rat 814 299 +J9 lancer-rat 818 301 +J10V tir-reussi 977 323 +J10V tir-reussi 894 299 +J10V tir-reussi 938 557 +J10V tir-reussi 942 335 +J10V tir-reussi 955 306 +J10V tir-reussi 68 261 +J10V tir-reussi 51 294 +J10V tir-reussi 59 258 +J10V tir-reussi 77 274 +J10V tir-reussi 53 255 +J10V tir-reussi 82 258 +J10V tir-reussi 29 314 +J10V tir-reussi 178 114 +J10V tir-reussi 28 326 +J10V tir-reussi 64 258 +J10V tir-reussi 61 278 +J10V tir-manque 973 427 +J10V tir-manque 838 425 +J10V tir-manque 926 280 +J10V tir-manque 958 333 +J10V tir-manque 962 318 +J10V tir-manque 938 321 +J10V tir-manque 188 220 +J10V tir-manque 69 254 +J10V lancer-reu 817 296 +J10V lancer-reu 819 303 +J10V lancer-reu 183 298 +J10V lancer-rat 818 293 +J10V lancer-rat 819 300 +J10V lancer-rat 816 300 +J10V lancer-rat 815 297 +J10V lancer-rat 817 299 +J10V lancer-rat 818 300 +J10V lancer-rat 182 300 +J10V rebondOff 900 300 +J10V rebondDef 900 286 +J10V rebondDef 920 282