From d2d1f3a22a2094854192778ad984572f6e63d651 Mon Sep 17 00:00:00 2001 From: Maxence <> Date: Thu, 27 Mar 2025 21:11:57 +0100 Subject: [PATCH] Version retravailler --- Projets_note.py | 114 ++++++++++++++++++++++++------------------------ 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/Projets_note.py b/Projets_note.py index 7307ba4..ad4d745 100644 --- a/Projets_note.py +++ b/Projets_note.py @@ -1,5 +1,50 @@ 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") @@ -11,14 +56,11 @@ 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 vérifier vos nombre avant le calcul !") +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") -zone_texte = tk.Entry(width = 20) -zone_texte.place(relx=0.5, rely=0.5, anchor="center") - -warning = tk.Label(text="") -warning.place(relx=0.5, rely=0.4, 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) @@ -27,60 +69,14 @@ 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_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") -# Vérifie les entrées -def Verif(): - global lst_nombre - global zone_texte - # Pour être sûr que l'utilisateur ne fait pas n'importe quoi - try: - nombre = zone_texte.get() - # On part du principe que l'utilisateur ne sait pas qu'il faut utiliser des points à la place des virgules - nombre = nombre.replace("," , ".") - nombre = float(nombre) - print(nombre) - lst_nombre.append(nombre) - warning.config(text="") - except ValueError: - warning.config(text="Invalide") - -# Calcule la note max, min et la moyenne -def Calcul(): - global lst_nombre - try: - 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}") - # Si quelq'un fait calculer une liste vide - except IndexError: - txt_note_min.config(text="") - txt_note_max.config(text="") - txt_moyenne.config(text="") - - -# Effacer les valeurs de la liste -def Effacer(): - global lst_nombre - lst_nombre = [] - # Différents bouton qui renvoie aux trois fonctions -bouton_verif = tk.Button(width = 8, height = 3, text = "Vérifier", command=Verif) +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) @@ -89,4 +85,8 @@ 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,) -screen.mainloop() \ No newline at end of file +help(Valid) +help(Calcul) +help(Effacer) + +screen.mainloop()