Projet notation PIX
Qu'est-ce que PIX ?
PIX est un service public en ligne dont l’objectif est d’évaluer le niveau de maîtrise des connaissances et de compétences numériques de chacun tout au long de la vie. Tout citoyen peut s’inscrire gratuitement sur cette plateforme, avec une adresse mail pour évaluer ses compétences numériques et les développer.
Les élèves ont sur Pix des notes qui varient entre 0 et 700 mais qui sont réparties de façons inégale. La note de l’élève sera donc calculée grâce à une fonction linéaire à partir de son score et de la moyenne.
Ce projet est donc réalisé en plusieurs étapes.
Après avoir réalisé toutes les étapes, le code obtenu est celui-ci:
import matplotlib.pyplot as plt
import numpy as np
fichier = open("Resultats-Test NSI Premi_re Gr1-370448-2021-10-19-1115.csv", encoding="utf8")
ligne = fichier.readline() # lecture de la première ligne
noms_colonnes = ligne.strip().split(";") # récupération de tous les éléments de la première lignes
print("noms colonnes=",noms_colonnes)
Liste_x=[]
Liste_y=[]
for ligne in fichier:
elements = ligne.strip().split(";")
Liste_x.append(elements[3])
Liste_y.append(int(elements[8]))
#print(Liste_x, Liste_y)
fichier.close()
#minimum=min(Liste_y)
#maximum=max(Liste_y)
def mini(liste):
mini=0
for valeur in liste:
if valeur< mini:
mini=valeur
return mini
def maxi(liste):
maxi=0
for valeur in liste:
if valeur> maxi:
maxi=valeur
return maxi
minimum = mini(Liste_y)
maximum = maxi(Liste_y)
def moyenne(liste=[]) :
somme=0
nb_elements=0
for valeur in liste:
somme=somme+valeur
nb_elements=nb_elements+1
#somme = sum(liste)
#nb_elements = len(liste)
moyenne = somme / nb_elements
return moyenne
moyenne=moyenne(Liste_y)
print (moyenne)
#calcul des coefficients de la fonction Note = a score + b
Notemoyenne=int(input("Choississez la note moyenne"))
b = (20-Notemoyenne*maximum/moyenne)/(1-maximum/moyenne)
a=(Notemoyenne-b)/moyenne
Notes=[round(a*score +b,1) for score in Liste_y]
#Notes=[round(20*score/maximum,1) for score in Liste_y]
#print(Notes)
Dictionnaire_note_eleve = dict(zip(Liste_x, Notes))
print(Dictionnaire_note_eleve)
for keys,values in Dictionnaire_note_eleve.items():
print(keys)
print(values)
def tracer_figure(liste1,liste2):
plt.figure(figsize = (16, 10))
plt.plot(liste1,liste2,'bs', label='Nom Elève versus Score PIX',marker='o')
plt.xlabel('Nom Elève')
plt.xticks(np.arange(0,len(liste1)), liste1, rotation = 60)
plt.ylabel('Score PIX')
plt.title("Nom Elève versus Score PIX")
plt.legend()
plt.grid(True)
plt.show()
if __name__=="__main__":
tracer_figure(Liste_x,Liste_y)
tracer_figure(Liste_x,Notes)