Python : Traduire la chaine
Résolu
Guolt
-
Guolt -
Guolt -
Bonjour, jai un petit problème :
Voici le code :
from Tkinter import *
from math import *
#Définition
def calculer(event):
txt2.configure(text = "Résultat =" + int(str(entr1.get()) * 4 ))
#-------------------------Programme Principal-----------------------#
fen1 = Tk()
fen1.title = "Convertion des moles"
#Listing des objets
txt1 = Label(fen1, text = 'Entrez une valeur :')
txt2 = Label(fen1)
entr1 = Entry(fen1)
button1 = Button(fen1, text='Quitter', command =fen1.quit)
#Mise en place
txt1.grid(row=0, column =1)
entr1.grid(row =0, column =2)
entr1.bind("<Return>",calculer)
txt2.grid(row=2, column =1)
button1.grid(row=2, column =2)
fen1.mainloop()
Je voudrais que si je tapes 4 dans le champ, le programme ecrirai alors 16 (4*4) et non pas 4444
Quelqu'un a t-il la solution, ce code ci dessus est faux puisque une erreur me dit que int et str sont incompatibles.
Merci de votre aide !
Voici le code :
from Tkinter import *
from math import *
#Définition
def calculer(event):
txt2.configure(text = "Résultat =" + int(str(entr1.get()) * 4 ))
#-------------------------Programme Principal-----------------------#
fen1 = Tk()
fen1.title = "Convertion des moles"
#Listing des objets
txt1 = Label(fen1, text = 'Entrez une valeur :')
txt2 = Label(fen1)
entr1 = Entry(fen1)
button1 = Button(fen1, text='Quitter', command =fen1.quit)
#Mise en place
txt1.grid(row=0, column =1)
entr1.grid(row =0, column =2)
entr1.bind("<Return>",calculer)
txt2.grid(row=2, column =1)
button1.grid(row=2, column =2)
fen1.mainloop()
Je voudrais que si je tapes 4 dans le champ, le programme ecrirai alors 16 (4*4) et non pas 4444
Quelqu'un a t-il la solution, ce code ci dessus est faux puisque une erreur me dit que int et str sont incompatibles.
Merci de votre aide !
A voir également:
- Python : Traduire la chaine
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
- Exercice python - Forum Python
1 réponse
Voici un listing qui fonctionne....
Tu as besoin d'une variable pour récupérer le contenu de ton objet Entry...
Tkinter met à ta disposition des objets spéciaux pour effectuer ce travail.
Il existe un objet IntVar() capable de retenir un contenu sous forme de nombre (entier et autres...) et un objet StringVar() capable de retenir des chaînes de caractères.
Tu accèdes à leur contenu à l'aide de la méthode get() et tu peux modifer leur contenu à l'aide de la méthode set().
Dans ton cas, tu dois instancier une variableTkinter et puis l'associer avec ton Entry...
Si tu as d'autres questions... je reste à ton service... ;-)
Tu as besoin d'une variable pour récupérer le contenu de ton objet Entry...
Tkinter met à ta disposition des objets spéciaux pour effectuer ce travail.
Il existe un objet IntVar() capable de retenir un contenu sous forme de nombre (entier et autres...) et un objet StringVar() capable de retenir des chaînes de caractères.
Tu accèdes à leur contenu à l'aide de la méthode get() et tu peux modifer leur contenu à l'aide de la méthode set().
Dans ton cas, tu dois instancier une variableTkinter et puis l'associer avec ton Entry...
Si tu as d'autres questions... je reste à ton service... ;-)
from Tkinter import * from math import * #Définition def calculer(event): txt2.configure(text = "Résultat =" + str(blabla.get() * 4 )) #-------------------------Programme Principal-----------------------# fen1 = Tk() fen1.title = "Convertion des moles" #Listing des objets txt1 = Label(fen1, text = 'Entrez une valeur :') txt2 = Label(fen1) blabla = IntVar() entr1 = Entry(fen1, textvariable=blabla) button1 = Button(fen1, text='Quitter', command =fen1.quit) #Mise en place txt1.grid(row=0, column =1) entr1.grid(row =0, column =2) entr1.bind("<Return>",calculer) txt2.grid(row=2, column =1) button1.grid(row=2, column =2) fen1.mainloop()
Or l'entrée est un nombre, et je n'ai pas envie kil m'affiche 4444 au lieau de 12.
J'ai trouvé la solution :
txt2.configure(text = "Résultat =" + str(int(entr1.get()))) et voilà !
Pas besoin de déclarer de variables !
Surtout pas de textvariable ki alourdit le code (surtout que la variable, on l'entre dans la fenetre et non dans la source ! )
Voilà ! Bref jte remercie comme même (au fait je n'ai pas vraiment uitilisé int() mais float() car je devais traduire des opération de type 12e+22 13e-2 etc...)
Tiens je te donne le code, il pourra te servir ! (qui sait ?) :
En effet, autant pour moi... mais IntVar() doit être remplacé par DoubleVar() pour que tu puisses utiliser des nombres à virgules flottantes.
Mon code fonctionne très bien...
Mais je peux remarquer que le tien fonctionne aussi... :-D
A chacun son truc... :-p