Création d'un petit programme pour faire un classement

Fermé
Cyrius - 4 nov. 2022 à 11:06
 Diablo76 - 4 nov. 2022 à 16:59

Bonjour,

Débutant avec Python, je souhaiterais réaliser un petit programme qui me permettrait de classer des classes (école) selon certains critères. Je ne sais pas si, en fonction des éléments que j'aurai à disposition si Python est le langage approprié, je serai donc très intéressé de vos différentes propositions.

Voici en détails ce que je souhaiterais:

Les surveillants remplissent un formulaire en ligne, enregistrant dans un document xls les données suivantes: Nom de la classe (ex: 5FR111) - Activité (ex: Trottinette) - Temps (ex: 2.5 pour 2min 50). Je précise que les temps de s'additionneront pas. Le 2.5 est donc ok et sera différencier du 2.3 pour 2min 30 par exemple.

Ce que je souhaite ensuite, c'est récupérer les différents temps de toutes les classes pour chaque activité afin de faire un classement et ainsi attribuer des points aux classes en fonction du classement par activité.

Et c'est la que je sèche. Premièrement, est-il possible (et si oui comment) d'aller chercher les valeurs dans un fichier xls ? Ensuite qu'est-il préférable, faire une boucle "pour chaque activité X dans activités : tester si le temps de la classe X est plus petit (plus rapide donc) que celui de la classe Y et si oui lui attribuer 50, mais comment faire pour que le deuxième aille 49, puis 48, ... 

Ou est-il préférable de créer une bibliothèque ClasseX{ActivitéX : tempsX, ActivitéY : tempsY, ...} et d'ensuite aller comparer les temps de chaque classe pour chaque activité afin de donner 50 points à la plus rapide et 49 à la deuxième, ... ?

Au vu de mes connaissances, je nage un peu dans le flou en matière de possibilités, si une bonne âme à une bonne idée, c'est très volontiers.

Je précise que le formulaire d'entrée des valeurs pourrait être directement fait en python si cela peut arranger les choses au départ, mais qu'au final, il faudrait tout de même pouvoir exporter les données dans une page xls afin de pouvoir créer un tableau imprimable.

D'avance merci :)


Windows / Chrome 106.0.0.0

A voir également:

7 réponses

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
4 nov. 2022 à 12:33

Bonjour,

Oui on peut lire et écrire dans une feuille Excel, avec les modules xlrd et xlsxwriter par exemple

Tu devrais commencer à coder quelque chose et ensuite nous montrer ce que tu as fait

sachant qu'on ne te donnera pas une solution toute faite ...

0

Merci de ta réponse, je vais donc voir ce que je peux faire.

A bientôt

0

Salut,

J'ai du mal à visualiser ton fichier XLS, je vois pour l'instant que des entêtes Nom de la classeActivité, Temps,  dont les colonnes contiennent les données.

Si ce n'est pas le cas, peux-tu nous donner la structure de ton XLS (un exemple suffit).

0

Hello,

C'est exactement ça. Un formulaire très simple qui génère un fichier XLS tout aussi simple.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question

Ok, donc le principe serait de regrouper les classes ayant la même activité et d'établir une chronologie ?

0

Exactement.

0

le module xlrd proposé par @Phil_1857 fait l'affaire, mais perso j'opterai pour le module pandas pour me sortir un dictionnaire ayant pour clés les entêtes et pour valeurs un dictionnaire de données.

Une bonne base pour créer l'ago.

Code:

from pandas import read_excel

df = read_excel('Classement.xls')
print(df.to_dict())

Sortie:

{'Classe': {0: '5FR362', 1: '5FR111', 2: '5FR122', 3: '5FR122', 4: '5FR122'}, 'Activités': {0: 'Cross', 1: 'Trottinette', 2: 'Fair-play', 3: 'Athlétisme', 4: 'Cross'}, 'Temps': {0: 2.3, 1: 2.4, 2: 1.8, 3: 2.5, 4: 2.8}}
0