Le "multiplier par" bug, AU SECOURS

Résolu
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()


Les gens vivent en s'appuyant sur leurs convictions et leurs connaissances et ils appellent ça la réalité.

3 réponses

  1. Je l’au déjà fais mais ça écris 5 fois le même chiffre
    1. Contributeur
      bonjour, ne devrais-tu pas ajouter quelques
      print()
      pour comprendre ce que fais ton code?
      1. 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()

        1. Merci énormément à toi ^^!