You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
2.1 KiB

7 months ago
#Sujet 1 : vous devez réaliser une interface graphique constituée de :
#• un Entry pour pouvoir saisir des notes (float)
#• un bouton valider qui sera associé à une fonction memo permettant de mémoriser les valeurs saisies (dans uneliste au départ vide).
#On entre les notes une par une dans le même Entry.
#• un bouton calcul associé à une fonction calcul qui calcule la moyenne des notes, la plus haute et la plus basse.
#Ces information sont ensuite affichées dans la fenêtre grâce à des Label.
import tkinter as tk
fenetre = tk.Tk()
fenetre.geometry("300x200")
fenetre.title("Interface graphique")
note = tk.StringVar()
lst = []
saisie = tk.Label(fenetre, text="Saisir notes")
saisie.grid(row=0, column=1)
entree = tk.Entry(fenetre, textvariable=note)
entree.grid(row=1, column=1)
# Création des fonctions
def memo():
'''Fonction pour mémoriser les notes saisies dans une liste'''
notes = float(note.get())
lst.append(notes)
note.set("") # Effacer l'entrée après validation
def calcul():
'''Fonction pour calculer la moyenne, la note la plus haute et la note la plus basse'''
if lst: # Vérifier si la liste n'est pas vide
moyenne = sum(lst) / len(lst)
plus_haute = max(lst)
plus_basse = min(lst)
resultat = f"Moyenne : {moyenne:.2f}, Plus haute : {plus_haute:.2f}, Plus basse : {plus_basse:.2f}"
# le f permet de mettre des variables dans une chaine de caractères sans avoir a faire de concatenation avec des + tout en donnant un nombre de chiffres après la virgule
tk.Label(fenetre, text=resultat).grid(row=4, column=1)
else:
tk.Label(fenetre, text="Aucune note saisie").grid(row=4, column=1)
# Création des boutons
button_valider = tk.Button(fenetre, text="Valider", command=memo)
button_valider.grid(row=2, column=1)
button_calcul = tk.Button(fenetre, text="Calcul", command=calcul)
button_calcul.grid(row=3, column=1)
button_quitter = tk.Button(fenetre, text="Quitter", command=fenetre.quit, bg="red", relief=tk.SUNKEN, activebackground="blue")
button_quitter.grid(row=5, column=1)
fenetre.mainloop()