Problème débutant python calcul input

Résolu
zane-4457 Messages postés 7 Statut Membre -  
zane-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

  1. Diablo76 Messages postés 344 Date d'inscription   Statut Membre Dernière intervention   140
     

    Salut,

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

    1
  2. bendrop Messages postés 12657 Date d'inscription   Statut Contributeur Dernière intervention   8 527
     

    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.


    0
    1. zane-4457 Messages postés 7 Statut Membre
       

      Merci quand même 

      0
  3. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

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

    0
    1. zane-4457 Messages postés 7 Statut Membre
       

      Merci pour le conseil .

      Donc si j'ai bien compris je dois marquer : 
       

      float(e.get())

      Mais où dois je le placer ?

      0
      1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169 > zane-4457 Messages postés 7 Statut Membre
         

        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()
        1
      2. zane-4457 Messages postés 7 Statut Membre > Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention  
         

        Merci infiniment pour votre aide .

        0
      3. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169 > zane-4457 Messages postés 7 Statut Membre
         

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

        1
      4. zane-4457 Messages postés 7 Statut Membre > Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention  
         

        C'est noté

        0