06/06/2026
⭐Défi Python : Transformer une calculatrice console en interface graphique avec Tkinter ✅
📌 Code de départ (version console)
# Calculatrice simple en console
while True:
expression = input("Entrez un calcul (ou 'q' pour quitter) : ")
if expression.lower() == "q":
print("Au revoir !")
break
try:
resultat = eval(expression)
print("Résultat :", resultat)
except:
print("Erreur dans l'expression")
🎯 Objectif du défi :
Jusqu’à présent, votre calculatrice fonctionne dans le terminal.
C’est une bonne base, mais une application moderne utilise généralement une interface graphique pour offrir une meilleure expérience utilisateur.
Votre mission est donc de transformer cette calculatrice console en une véritable application graphique avec Tkinter
👉 Fonctionnalités attendues :
Votre calculatrice graphique doit inclure :
✅ Une zone d’affichage pour saisir et afficher les calculs
✅ Des boutons numériques de 0 à 9
✅ Les opérateurs : +, -, *, /
✅ Un bouton = pour afficher le résultat
✅ Un bouton C pour effacer l’écran
💡 Consigne
Essayez de réaliser l’interface par vous-même avant de consulter la solution.
✅ Voici ma solution 👇:
import tkinter as tk # on importe tkinter pour créer la fenêtre
# ajouter un caractère dans l'écran
def ajouter(caractere):
ecran.insert(tk.END, caractere) # on ajoute ce que l'utilisateur clique
# faire le calcul
def calculer():
try:
resultat = eval(ecran.get()) # on récupère ce qui est écrit et on calcule
ecran.delete(0, tk.END) # on vide l'écran
ecran.insert(0, str(resultat)) # on affiche le résultat
except:
ecran.delete(0, tk.END)
ecran.insert(0, "Erreur") # si problème dans le calcul
# vider l'écran
def effacer():
ecran.delete(0, tk.END)
# fenêtre principale
fenetre = tk.Tk()
fenetre.title("Calculatrice")
# écran d'affichage
ecran = tk.Entry(fenetre, width=20, font=("Arial", 18))
ecran.grid(row=0, column=0, columnspan=4)
# boutons de la calculatrice
boutons = [
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"C", "0", "=", "+"
]
ligne = 1
colonne = 0
# création des boutons
for bouton in boutons:
if bouton == "=":
tk.Button(fenetre, text=bouton, width=5, command=calculer).grid(row=ligne, column=colonne)
elif bouton == "C":
tk.Button(fenetre, text=bouton, width=5, command=effacer).grid(row=ligne, column=colonne)
else:
tk.Button(
fenetre,
text=bouton,
width=5,
command=lambda b=bouton: ajouter(b)
).grid(row=ligne, column=colonne)
colonne += 1
if colonne > 3:
colonne = 0
ligne += 1
fenetre.mainloop()
🔥Qui a réussi a le faire sans regarder la résolution ?