Problème débutant python calcul input

Résolu
zane-4457 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
zane-4457 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -

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

A voir également:

3 réponses

Diablo76 Messages postés 244 Date d'inscription   Statut Membre Dernière intervention   77
 

Salut,

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

1
bendrop Messages postés 12727 Date d'inscription   Statut Contributeur Dernière intervention   8 378
 

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
zane-4457 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

Merci quand même 

0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 

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
zane-4457 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

Merci pour le conseil .

Donc si j'ai bien compris je dois marquer : 
 

float(e.get())

Mais où dois je le placer ?

0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168 > zane-4457 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

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
zane-4457 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   > Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention  
 

Merci infiniment pour votre aide .

0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168 > zane-4457 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

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
zane-4457 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   > Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention  
 

C'est noté

0