""" Mauvaise utilisation du bloc try except. Utilisation trop compliquée de fonctions lambda. Avant de vouloir vous lancer dans des choses compliquées, il aurait été intéressant de faire uniquement ce qui était demandé dans le cahier des charges ! Par exemple, comment taper 10 avec votre clavier ? Que se passe-t-il si je tapes 2 2 calculer ? Pourquoi vous acharnez-vous à faire faire votre travail par une IA sans chercher à comprendre le résultat ?!? Note : 5 / 10 """ import tkinter as tk from tkinter import messagebox from expression import npi2tree def ajouter(val): entree.insert(tk.END, val + " ") def calculer(): try: texte = entree.get() liste = texte.split() arbre = npi2tree(liste) resultat.config(text="Résultat : " + str(arbre.evalue())) except: messagebox.showerror("Erreur", "Expression invalide") def effacer(): entree.delete(0, tk.END) resultat.config(text="") fenetre = tk.Tk() fenetre.title("Calculatrice NPI") fenetre.geometry("500x600") entree = tk.Entry(fenetre, width=35, font=("Arial", 18)) entree.pack(pady=20) frame = tk.Frame(fenetre) frame.pack() chiffres = ["7", "8", "9", "4", "5", "6", "1", "2", "3", "0"] i = 0 for c in chiffres: b = tk.Button(frame, text=c, width=6, height=2, font=("Arial", 16), command=lambda x=c: ajouter(x)) b.grid(row=i//3, column=i%3, padx=5, pady=5) i += 1 plus = tk.Button(frame, text="+", width=6, height=2, font=("Arial", 16), command=lambda: ajouter("+")) plus.grid(row=0, column=3, padx=5, pady=5) fois = tk.Button(frame, text="*", width=6, height=2, font=("Arial", 16), command=lambda: ajouter("*")) fois.grid(row=1, column=3, padx=5, pady=5) btn_calc = tk.Button(fenetre, text="Calculer", font=("Arial", 16), height=2, command=calculer) btn_calc.pack(pady=10) btn_clear = tk.Button(fenetre, text="Effacer", font=("Arial", 16), height=2, command=effacer) btn_clear.pack(pady=5) resultat = tk.Label(fenetre, text="", font=("Arial", 16), fg="red") resultat.pack(pady=20) fenetre.mainloop()