1) Introduction
La première ligne contient les champs les autre lignes correspondent à des enregistrements. La description des données d’un enregistrement se trouve sur la première ligne.
2) Activité bulletins sans python
Nous allons enregistrer une table dans un fichier csv (comma séparated values ou valeurs séparées par des « virgules ») à l’aide d’un éditeur de texte.
Les notes des élèves dans les 5 matières enseignées sont à ajouter
1) Ouvrir un éditeur de texte (Notepad++ par exemple)
2) Saisir les données ci-dessus en ajoutant des notes fictives.
3) Enregistrer le fichier au format csv.
4) Ouvrir le fichier à l’aide d’un tableur (excel ou libre office)
LibreOffice vous proposera des options pour l’ouvrir correctement. Vous pouvez en particulier choisir le séparateur
Sur Excel il faut d’abord ouvrir le tableur puis aller dans l’onglet données
Vous verrez apparaitre l’option à partir d’un fichier csv. Après avoir choisi votre fichier dans vos répertoires vous pourrez choisir votre délimiteur(séparateur) ainsi que d’autres options.
5) Calculer la moyenne générale de chacun des élèves.
3) Activité bulletins avec python
Vous pouvez récupérer le fichier csv et prendre soin de le placer dans le même répertoire que vos programmes python. Sans tenir compte de la première ligne qui contient les champs des colonnes , repérer le numéro qui correspond à votre prénom.
La ligne 38 par exemple à Malefoy. Vous ferez les test avec votre ligne.
Ci-dessous le code python qui permet de lire le fichier csv
import csv eleves=[] with open('216.csv',newline='')as csvfile: s=csv.DictReader(csvfile,delimiter=';') for line in s: eleves.append(dict(line))
On peut rechercher le nom se trouvant dans la colonne élève de la ligne 38.Il suffit d’ajouter au programme la ligne :
print(eleves[38]['Élève'])
Vous pouvez aussi saisir dans la console
Vous pouvez aussi demander si un élève est Moldu.et vous ?
Nous allons maintenant générer toutes les notes de façon aléatoire entre 10 et 20
import csv import random eleves=[] with open('216.csv',newline='')as csvfile: s=csv.DictReader(csvfile,delimiter=';') for line in s: eleves.append(dict(line)) matieres=['Potions', 'Botanique','étude des Moldus', 'Sortilèges', 'Vol sur Balai'] notes=[random.randint(10,20) for val in matieres] for eleve in eleves: for i in range(5): notes=[random.randint(10,20) for val in matieres] eleve[matieres[i]]=notes[i]
Quelle note a obtenu Malefoy en Botanique ? et vous ?
Avec le code ci-dessous vous allez pouvoir enregistrer un bilan comme sur pronote sous forme de diagramme ‘araignée’
import csv import random import plotly.graph_objects as go eleves=[] with open('216.csv',newline='')as csvfile: s=csv.DictReader(csvfile,delimiter=';') for line in s: eleves.append(dict(line)) matieres=['Potions', 'Botanique','étude des Moldus', 'Sortilèges', 'Vol sur Balai'] notes=[random.randint(10,20) for val in matieres] for eleve in eleves: for i in range(5): notes=[random.randint(10,20) for val in matieres] eleve[matieres[i]]=notes[i] radar = go.Scatterpolar(r = [eleves[38][val] for val in matieres],theta = matieres,fill = 'toself',\ line_color = "cyan", marker = dict( color = "royalblue",symbol = "square",size = 8),opacity=0.5) data = [radar] fig = go.Figure(data = data) fig.update_layout(title_text = eleves[38]['Élève']) fig.write_image("bilan.png")
Une image est générée dans votre répertoire de travail