Problème débutant python calcul input
Résoluzane-4457 Messages postés 7 Statut Membre -
Bonjour,
Je suis débutant dans l'univers Python , dans ce programme on demande à l'utilisateur de saisir un nombre . Ensuite on veut multiplier ce nombre par 6 , puis on veut afficher une phrase avec le résultat du calcul dedans . Problème : je reçois une erreur de type : "ValueError: invalid literal for int() with base 10: ''" .
Pouvez vous m'aider à trouver une solution merci .
Cordialement
PS : on affiche le programme dans une fenetre grace à tkinter .
from tkinter import*
root = Tk()
e = Entry(root)
e.pack()
eauconsommée = e.get()*6
grrg = int(eauconsommée)
def calcul():
affichageducalcul = Label(root, text = "Vous avez consommé " + eauconsommée + " litres d'eau")
affichageducalcul.pack()
Bouton = Button(root, text = "RUN" , command = calcul)
Bouton.pack()
root.mainloop()
Windows / Chrome 110.0.0.0
3 réponses
-
Salut,
Ta méthode get() doit être dans ta fonction calcul() et attention au type de valeur qu'elle retourne.
-
Bonsoir,
Il ne faut pas mettre d’accent dans les noms de variable.
C’est le seul point que je connais. Pour le reste je le serais te dire.
Cdlt.
-
Bonjour,
La valeur récupérée de l'Entry est une chaine de caractères
il faut donc la convertir en nombre décimal avec float()
-
Merci pour le conseil .
Donc si j'ai bien compris je dois marquer :
float(e.get())
Mais où dois je le placer ?
dans la fonction:
# -*- coding:Utf-8 -*- from tkinter import * def calcul(): eauconsommee = float(e.get())*6 affichageducalcul['text'] = "Vous avez consommé " + str(eauconsommee) + " litres d'eau" root = Tk() root.geometry('300x100+300+100') e = Entry(root) e.pack() affichageducalcul = Label(root) affichageducalcul.pack() b= Button(root, text = "RUN" , command = calcul) b.pack() root.mainloop()ok mais as-tu bien noté la structure de mon exemple ?
pas de caractères accentués dans les noms de variables
imports
définitions de fonctions
création de la fenêtre avec une taille donnée
création des widgets:
Label (et pas dans la fonction, sinon tu le re crée à chaque fois que tu appelles la fonction)
Entry
Button
Boucle évènementielle (root.mainloop())
-