Table de Multiplication Tkinter
zoooeee
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
quent217 Messages postés 420 Date d'inscription Statut Membre Dernière intervention -
quent217 Messages postés 420 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je dois créer un programme permettant de calculer une table de multiplication du nombre choisi par l'utilisateur en affichant la table de 0 à 10. Pour cela j'ai mon programme qui fonctionne
Mais mon soucis c'est que je dois le faire avec tkinter qui me permettra d'ouvrir une nouvelle fenêtre pour exécuter ce programme.
Voila mon programme mais il ne fonctionne pas et je ne comprend pas pourquoi...
Merci d'avance..
Je dois créer un programme permettant de calculer une table de multiplication du nombre choisi par l'utilisateur en affichant la table de 0 à 10. Pour cela j'ai mon programme qui fonctionne
t=int(input("Quelle table de multiplication voulez vous?") for i in range (0,11): print ( i,"*",t,"=",i*t)
Mais mon soucis c'est que je dois le faire avec tkinter qui me permettra d'ouvrir une nouvelle fenêtre pour exécuter ce programme.
Voila mon programme mais il ne fonctionne pas et je ne comprend pas pourquoi...
# Ce programme consiste à calculer une table # de multiplication du chiffre voulu. from tkinter import * #Construction de la fenêtre principale fen = Tk() fen.geometry('700x445+900+200') fen.title('Fenetre externe') #Construction d'un cadre dans la fenêtre principale cadre1 = Frame(fen,borderwidth=4, bg ='black') cadre1.pack() cadre2 = Frame(cadre1,borderwidth=4,relief=GROOVE,bg ='Medium purple') cadre2.pack(padx=5,pady=5) #Création d'un champ de titre pour la fenêtre Titre = Label(cadre2, text="Quelle table de multiplication voulez-vous ?",bg ='Medium purple', pady=15,font ="Arial 20 ") Titre.pack() #Création d'un label d'indication de la valeur attendue dans le champ situé dessous IndicationNombre = Label(cadre2, text="Quelle table de multiplication voulez-vous?",bg ='Medium purple', pady=20) IndicationNombre.pack() #Création d'un champ de saisie pour le nombre saisie1 = StringVar() Nombre= Entry(cadre2, textvariable = saisie1, bg ='white', relief=RIDGE, font ="Arial 14 "+"italic") Nombre.pack(padx = 5, pady = 5) #Création d'un label pour indiquer la réponse située dessous IndicationTable = Label(cadre2, text="La table est:",bg ='Medium purple', pady=20) IndicationTable.pack() #Création d'une fonction définissant le contenu du champ de réponse def repondre(): Resultat["texte"] = for i range(0,11): print(i,"*",(Nombre.get),"=",i*(Nombre.get) #Création d'un champ pour la réponse Resultat = Label(cadre2, borderwidth=8, relief=RIDGE, bg ='bisque', width=20) Resultat.pack(padx = 40, pady = 5) # Création de deux boutons (Valider & quitter) BoutonValider = Button(cadre2, text ='Valider', command = repondre) BoutonValider.pack(side=LEFT, padx=4, pady=20) BoutonQuitter = Button(cadre2, text ='Quitter', command = fen.destroy) BoutonQuitter.pack(side=RIGHT, padx=4, pady=20) fen.mainloop()
Merci d'avance..
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Table de Multiplication Tkinter
- Table ascii - Guide
- Table des matières word - Guide
- Application multiplication - Télécharger - Études & Formations
- Table des caractères - Guide
- Tableau croisé dynamique ou table de pilote - Guide
1 réponse
Bonjour,
la ligne
est invalide en python
Si tu veux créer une chaine de caractères, tu peux utiliser la syntaxe suivante en utilisant la fonction join :
de plus il faut bien pensé à mettre des parenthèses après Nombre.get() car Nombre.get correspond à la fonction elle même et non pas au résultat que cette fonction retourne. Il faut aussi enlever le e de texte car c'est de l'anglais ;)
la ligne
Resultat["texte"] = for i range(0,11): print(i,"*",(Nombre.get),"=",i*(Nombre.get))
est invalide en python
Si tu veux créer une chaine de caractères, tu peux utiliser la syntaxe suivante en utilisant la fonction join :
Resultat["text"]="\n".join(str(i)+" * "+Nombre.get()+" = "+str(i*int(Nombre.get())) for i in range(0,11))
de plus il faut bien pensé à mettre des parenthèses après Nombre.get() car Nombre.get correspond à la fonction elle même et non pas au résultat que cette fonction retourne. Il faut aussi enlever le e de texte car c'est de l'anglais ;)