Problème débutant python calcul input

Résolu

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

  1. Salut,

    Ta méthode get() doit être dans ta fonction calcul() et attention au type de valeur qu'elle retourne.

    1. Contributeur

      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.


      1. Merci quand même 

    2. 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()

      1. Merci pour le conseil .

        Donc si j'ai bien compris je dois marquer : 
         

        float(e.get())

        Mais où dois je le placer ?

      2. @zane-4457

        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()
      3. @zane-4457

        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())