Problème débutant python calcul input

Résolu/Fermé
zane-4457 Messages postés 7 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 14 février 2023 - 10 févr. 2023 à 21:56
zane-4457 Messages postés 7 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 14 février 2023 - 11 févr. 2023 à 13:43

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 204 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 30 octobre 2024 44
11 févr. 2023 à 04:54

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 12603 Date d'inscription jeudi 30 juin 2005 Statut Contributeur Dernière intervention 20 décembre 2024 8 304
Modifié le 10 févr. 2023 à 23:16

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 vendredi 10 février 2023 Statut Membre Dernière intervention 14 février 2023
11 févr. 2023 à 10:13

Merci quand même 

0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
11 févr. 2023 à 10:33

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 vendredi 10 février 2023 Statut Membre Dernière intervention 14 février 2023
11 févr. 2023 à 10:37

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 lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168 > zane-4457 Messages postés 7 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 14 février 2023
Modifié le 11 févr. 2023 à 11:28

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 vendredi 10 février 2023 Statut Membre Dernière intervention 14 février 2023 > Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024
11 févr. 2023 à 12:03

Merci infiniment pour votre aide .

0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168 > zane-4457 Messages postés 7 Date d'inscription vendredi 10 février 2023 Statut Membre Dernière intervention 14 février 2023
Modifié le 11 févr. 2023 à 13:36

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 vendredi 10 février 2023 Statut Membre Dernière intervention 14 février 2023 > Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024
11 févr. 2023 à 13:43

C'est noté

0