import tkinter as tk # Vérifie les entrées def Valid(): "Remplace le nombre a virgule par un float exploitable par python et le rajoute à la liste des notes" global lst_nombre # Pour être sûr que l'utilisateur ne fait pas n'importe quoi # On part du principe que l'utilisateur ne sait pas qu'il faut utiliser des points à la place des virgules nombre = entrée_notes.get() nombre = nombre.replace("," , ".") nombre = float(nombre) print(nombre) lst_nombre.append(nombre) txt_lst_notes.config(text=f"Voici les notes {lst_nombre} !") # Calcule la note max, min et la moyenne def Calcul(): "Calcul et affiche la note la plus haute, la plus basse, et la moyenne du groupe" global lst_nombre total = 0 nombre_notes = 0 print(lst_nombre) lst_nombre.sort() print(lst_nombre) note_min = lst_nombre[0] note_max = lst_nombre[-1] for i in range(len(lst_nombre)): total += lst_nombre[i] nombre_notes += 1 moyenne = total/nombre_notes moyenne = round(moyenne, 1) # Remplace les textes vides par les notes txt_note_min.config(text=f"Note la plus basse : {note_min}") txt_note_max.config(text=f"Note la plus haute : {note_max}") txt_moyenne.config(text=f"Moyenne du groupe : {moyenne}") # Effacer les valeurs de la liste def Effacer(): "Efface toutes les notes pour une nouvelle série de notes" global lst_nombre lst_nombre = [] txt_lst_notes.config(text=f"Voici les notes {lst_nombre} !") txt_note_min.config(text="") txt_note_max.config(text="") txt_moyenne.config(text="") # Configuration de la fenêtre screen = tk.Tk() screen.title("Calcul de notes") screen.minsize(300, 300) screen.maxsize(300, 300) # Initialisation de la liste lst_nombre = [] # Différents textes présents (ou non) sur la page #Zone d'entrée pour les nombres welcome_txt = tk.Label(text="Veuillez entrer des nombres, pour connaitre \n la note la plus basse, la plus haute et la moyenne ! \n Penser à bien valider vos nombre avant le calcul !") welcome_txt.place(relx=0.5, y=70, anchor="center") entrée_notes = tk.Entry(width = 20) entrée_notes.place(relx=0.5, rely=0.5, anchor="center") txt_note_min = tk.Label(text="") txt_note_min.place(x=0, y=10) txt_note_max = tk.Label(text="") txt_note_max.place(x=170, y=10) txt_moyenne = tk.Label(text="") txt_moyenne.place(relx=0.5, y=40, anchor="center") txt_lst_notes = tk.Label(text="") txt_lst_notes.place(relx=0.5, rely=0.4, anchor="center") # Différents bouton qui renvoie aux trois fonctions bouton_verif = tk.Button(width = 8, height = 3, text = "Vérifier", command=Valid) bouton_verif.place(relx=0.5, rely=0.7, anchor="center") bouton_calcul = tk.Button(width = 8, height = 3, text = "Calcul", command=Calcul) bouton_calcul.place(relx=0.7, rely=0.8,) bouton_calcul = tk.Button(width = 8, height = 3, text = "Effacer", command=Effacer) bouton_calcul.place(x=22, rely=0.8,) help(Valid) help(Calcul) help(Effacer) screen.mainloop()