A voir également:
- [python] récupérer des valeurs or d'Entry
- Or - Guide
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment récupérer un compte facebook piraté - Guide
10 réponses
Re,
Personne ne peut vraiment pas m'aider ?
Je me suis peut être malexprimée:
Voila ce que je veux faire:
Je crée une interface graphique avec Tkinter.
J'y mets 3 zone de texte(Entry)
Les données entrées par l'utilisateur dans ces zones de texte, doivent être converties en numériques afin de faire des calculs avec.
Comment puis-je convertir ces données ?
Un truc dans le style : montant = eval(entree1.get())
C'est quand je dois utiliser ces données dans une formule que ça se complique.
Merci pour votre aide.
Personne ne peut vraiment pas m'aider ?
Je me suis peut être malexprimée:
Voila ce que je veux faire:
Je crée une interface graphique avec Tkinter.
J'y mets 3 zone de texte(Entry)
Les données entrées par l'utilisateur dans ces zones de texte, doivent être converties en numériques afin de faire des calculs avec.
Comment puis-je convertir ces données ?
Un truc dans le style : montant = eval(entree1.get())
C'est quand je dois utiliser ces données dans une formule que ça se complique.
Merci pour votre aide.
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
14 janv. 2006 à 23:48
14 janv. 2006 à 23:48
Salut,
Tu veux dirte que tu les récupères en chaine de caractère et tu veux les valeurs entières ou réelles?
En ce cas tu peux faire une simple conversion avec int() ou float() par exemple.
Exemple, int("2") te renverra 2.
Tu veux dirte que tu les récupères en chaine de caractère et tu veux les valeurs entières ou réelles?
En ce cas tu peux faire une simple conversion avec int() ou float() par exemple.
Exemple, int("2") te renverra 2.
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
14 janv. 2006 à 23:49
14 janv. 2006 à 23:49
A moins que tu aies déjà des methodes du genre getint() ou getfloat() dans TKinter.
Merci,
Le problème c'est que je ne connais pas à l'avance ce que l'utilisateur va entrer comme données dans les zones de texte. Donc, je ne peux pas faire int("3")
éventuellement int(entree1.get()) Mais je ne sais pas. Je vais essayer on verra bien.
Normalement, il dvrait y avoir aussi un truc comme entree1.bind()
merci
Le problème c'est que je ne connais pas à l'avance ce que l'utilisateur va entrer comme données dans les zones de texte. Donc, je ne peux pas faire int("3")
éventuellement int(entree1.get()) Mais je ne sais pas. Je vais essayer on verra bien.
Normalement, il dvrait y avoir aussi un truc comme entree1.bind()
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
15 janv. 2006 à 00:53
15 janv. 2006 à 00:53
Ah c'est un champs prévu pour qu'on y entre des chaines comme des chiffres?
Ben là il faudra faire une vérification caractère par caractère pour determiner si ce que la personne entre est un nombre ou une phrase.
Les codes ascii des caractères 0 à 9 sont compris entre 48 et 57.
Tu peux aussi faire une vérification sur le "." au cas ou la personne entre un nombre réel. Avec ord tu as le code ascii d'un caractère:
Voilà, si ta chaine est un entier ou un float, ça retournera True.
Il faudrait l'affiner, puisqu'elle retournera True même si on ecris "1458.5465.44....." mais au moins tu as une piste.
Une autre manière de faire serait:
Ben là il faudra faire une vérification caractère par caractère pour determiner si ce que la personne entre est un nombre ou une phrase.
Les codes ascii des caractères 0 à 9 sont compris entre 48 et 57.
Tu peux aussi faire une vérification sur le "." au cas ou la personne entre un nombre réel. Avec ord tu as le code ascii d'un caractère:
def verif(chaine): float_range=range(48,58) float_range.append(ord(".")) for caractere in chaine: if ord(caractere) not in float_range: return False return True
Voilà, si ta chaine est un entier ou un float, ça retournera True.
Il faudrait l'affiner, puisqu'elle retournera True même si on ecris "1458.5465.44....." mais au moins tu as une piste.
Une autre manière de faire serait:
try: int(chaine) except ValueError: # Truc à faire si la conversion n'est pas possible (car il n'y a pas que des nombres)
Merci kilian,
Tu es merveilleusement charitable et ta patience m'ébloui.
Mais, je crois qu'on ne s'est pas bien compris.
Sous python, quand on saisi qlqchose dans une zone de texte, le langage considère cette saisie comme une chaîne de caractère. Comme il est impossible de multiplier, diviser des chaines, je dois avant d'appeler une fonction convertir les chaînes en caractères numériques.
ex: la personne tappe 123, python le considère comme "123" et non comme 123.
Quand je fais ce qui suit dans l terminal, ça marche. pourquoi cel ane marche-t-il pas en mode graphique ?
>>>a="123"
>>>b="123"
>>>c=eval(a)+eval(b)
>>>print c
256
C'est exemple est simpliste mais c'est ce que je voudrais faire avec 3 zones de saisies. Les convertir avant d'appeler ma fonction.
Mais quans je tappe : montant = eval(entree1.get()) Il me dit que montant n'a pas été déclaré
Enfin, voilà... Lol
encore merdi
Tu es merveilleusement charitable et ta patience m'ébloui.
Mais, je crois qu'on ne s'est pas bien compris.
Sous python, quand on saisi qlqchose dans une zone de texte, le langage considère cette saisie comme une chaîne de caractère. Comme il est impossible de multiplier, diviser des chaines, je dois avant d'appeler une fonction convertir les chaînes en caractères numériques.
ex: la personne tappe 123, python le considère comme "123" et non comme 123.
Quand je fais ce qui suit dans l terminal, ça marche. pourquoi cel ane marche-t-il pas en mode graphique ?
>>>a="123"
>>>b="123"
>>>c=eval(a)+eval(b)
>>>print c
256
C'est exemple est simpliste mais c'est ce que je voudrais faire avec 3 zones de saisies. Les convertir avant d'appeler ma fonction.
Mais quans je tappe : montant = eval(entree1.get()) Il me dit que montant n'a pas été déclaré
Enfin, voilà... Lol
encore merdi
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
15 janv. 2006 à 15:22
15 janv. 2006 à 15:22
Ben, avec la solution que j'ai mis au dessus ça devrait être bon (avec le try/except ce sera plus facile).
Tu es merveilleusement charitable et ta patience m'ébloui.
C'est exact.
Tu es merveilleusement charitable et ta patience m'ébloui.
C'est exact.
Il n'y a décidément pas moyen de se comprendre lol!
Dans tout ce que tu m'as dit, il n'y a rien qui me permette d'extraire ce que l'utilisateur a saisi.
Tu me donnes le moyen de controler, mais pas de récupérer.
si j écris une fonction comme suit :
def copiage():
ofi=open("monfichier.doc",'a')
ofi.write(entr1.get())
ofi.close()
bou=Button(fen,text="copier",command=copiage)
Là, je vais récupérer ce que l'utilisateur a saisi dans la zone de texte et je vais l écrire dans un fihier texte.
Donc, dans le même ordre d'idée, j'aimerais récupérer ce que des gens vont écrire dans mes zone de texte afin de m'en servir pour effectuer un calcul dont le résultat sera envoyé dans un Label.
Voilà et encore merci
Dans tout ce que tu m'as dit, il n'y a rien qui me permette d'extraire ce que l'utilisateur a saisi.
Tu me donnes le moyen de controler, mais pas de récupérer.
si j écris une fonction comme suit :
def copiage():
ofi=open("monfichier.doc",'a')
ofi.write(entr1.get())
ofi.close()
bou=Button(fen,text="copier",command=copiage)
Là, je vais récupérer ce que l'utilisateur a saisi dans la zone de texte et je vais l écrire dans un fihier texte.
Donc, dans le même ordre d'idée, j'aimerais récupérer ce que des gens vont écrire dans mes zone de texte afin de m'en servir pour effectuer un calcul dont le résultat sera envoyé dans un Label.
Voilà et encore merci
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
15 janv. 2006 à 16:12
15 janv. 2006 à 16:12
Ben si tu peux recupérer ça avec la methode get(), je ne comprend pas ce qui manque...