Le "multiplier par" bug, AU SECOURS [Résolu/Fermé]

Signaler
Messages postés
14
Date d'inscription
jeudi 5 mars 2020
Statut
Membre
Dernière intervention
14 mars 2020
-
 St4rG0ld -
Yo, j'ai un petit bug au niveau de mon code, je veux multiplier le résultat d'une Entry qui a été get() et le mettre dans un fichier mais au lieu de me multiplier, soit il ne fait rien, soit il écris 5 fois le même chiffre, voila le bout du code qui bug

from tkinter import *
import os

root = Tk()

root.geometry("750x550")

slcen = StringVar()
    
slc = Entry(root, textvariable=slcen)
slc.focus_set()
slc.pack(padx=0, pady = 20)

aml = slc.get()

aeu = aml*5

def geted():
    notes = slc.get()
    print(slc.get())
    
    slc.delete(0, END)

    cnt = open("Affiliedmarkshlprs.txt", "a")
    cnt.write("\neleves : ")
    cnt.write(notes)
    cnt.write("/10")
    cnt.write(" Pourcentage de réussite :")
    cnt.write(aml*5)
    cnt.close()


A voir également:

3 réponses

Je l’au déjà fais mais ça écris 5 fois le même chiffre
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
593
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
5 juin 2021
139
C'est normal. slc.get() te renvoie un string.
Quand tu multiplies un string il l'affiche autant de fois que nécessaire à la suite. Tu dois d'abord convertir ton string en valeur chiffrée avant de la multiplier :
"1"*5 = "11111"
1*5 = 5

Essaye d'utiliser la fonction int().
Si tu n'es pas sûr des types de tes variables tu peux sois print comme te le précise yg_be, ou utiliser la fonction type().


Exemple de code :
from tkinter import *
import os

root = Tk()

root.geometry("750x550")

slcen = StringVar()
    
slc = Entry(root, textvariable=slcen)
slc.focus_set()
slc.pack(padx=0, pady = 20)

try:
    aml = int(slc.get())
except: 
    # Entrée invalide, sors du code comme tu veux...
aeu = aml*5

def geted():
    notes = slc.get()
    print(slc.get())
    
    slc.delete(0, END)

    cnt = open("Affiliedmarkshlprs.txt", "a")
    cnt.write("\neleves : ")
    cnt.write(notes)
    cnt.write("/10")
    cnt.write(" Pourcentage de réussite :")
    cnt.write(aml*5)
    cnt.close()

Merci énormément à toi ^^!
Messages postés
15999
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 juin 2021
867
bonjour, ne devrais-tu pas ajouter quelques
print()
pour comprendre ce que fais ton code?