""" C'est bien le copié-collé, mais des fois il faut quand même se relire : voir la doc de convml... Évite de définir une variable au milieu des fonctions. Où est la documentation de `set_label` ??? Et qu'est-elle censée faire avec var1, var2 et result qui ne sont définis nulle part ?? À quoi sert le canvas ? Tes placements sont très étrange... Tu mets tout en colonne 1 sur trois colonnes, sans préciser la ligne .... Note finale: 8/10 """ import tkinter as tk def convkm() : """ lit la valeur de l'entrée puis divise par 1.609 et enfin modifie le label""" val = value.get() val = val / 1.609 resultat.config(text = val) def convml() : """ lit la valeur de l'entrée puis divise par 1.609 et enfin modifie le label""" val = value.get() val = val * 1.609 resultat.config(text = val) N = 5 def set_label() : if var1.get() == '' or var2.get() == '': pass else: res = float(var1.get()) * float(var2.get()) result.set('{number:.{digits}f}'.format(number=res, digits=N)) fenetre = tk.Tk() fenetre.title("convertisseur") canvas = tk.Canvas(fenetre, width=500, height=500, bg='white') tk.Label(text="Convertisseur de vitesse").grid(column= 1, columnspan= 3) value = tk.DoubleVar() entree = tk.Entry(fenetre, textvariable=value, width=30) entree.grid(column=1, columnspan= 3) tk.Label(text="Convertion").grid(column= 1, columnspan= 3) tk.Button (fenetre, text ='Kilomètres -> Miles', command = convkm).grid(column=1, row=3, padx=5, pady=5) tk.Button (fenetre, text ='Miles -> Kilomètres', command = convml).grid(column=2, row=3, padx=5, pady=5) resultat=tk.Label(fenetre, text = "") resultat.grid(column=1, columnspan= 3) fenetre.mainloop()