Profilo di Argwin

Nome Argwin
Indirizzo email n/a
Messaggi1
  • Problema sul ciclo while
    Forum >> Programmazione Python >> GUI
    Ciao a tutti, sono nuovo del forum e del mondo della programmazione...
    Qualche anno fa hanno cominciato a studiare Python ma poi per motivi vari ho mollato...
    Ora l'ho ripreso e sono riuscito ad andare più avanti di allora e sono arrivato, anche se pur arrancando, alla creazione di GUI con Tkinter...
    Ora per prova stavo tentando di creare un generatore di password casuali e,da linea di comando, ci ero riuscito, ma il problema è sopraggiunto una volta che ho provato a rivestirlo con una GUI...


    from tkinter import *
    from random import choice
    
    
    def gen_pass():
    	i = 0
    	b = a.get()
    	while i < b:
    		parola = choice(lista)
    		lblRisultato['text'] = parola
    		i = i + 1
    
    root = Tk()
    root['background'] = "#808080"
    root.geometry("500x250+450+250")
    root.title("GenPass by Argwin")
    
    lista = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "z",
    "A", "B", "C", "D", "E", "F", "G", "H", "I", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "Z",
    1, 2, 3, 4, 5, 6, 7, 8, 9, 0, "_", "-", "!"]
    a = IntVar()
    
    lblDescrizione = Label(root, text="Genera la tua password casuale.", font="Vivaldi 20", fg="#FFFFFF", bg="#808080")
    lblDescrizione.pack()
    
    lblSpaziatore = Label(root, text="", bg="#808080")
    lblSpaziatore.pack()
    
    lbl1 = Label(root, text="Di quanti caratteri vuoi che sia formata la password?", bg="#808080")
    lbl1.pack()
    
    lblSpaziatore = Label(root, text="", bg="#808080")
    lblSpaziatore.pack()
    
    casellaInserimento = Entry(root, textvariable=a)
    casellaInserimento.pack()
    
    lblSpaziatore = Label(root, text="", bg="#808080")
    lblSpaziatore.pack()
    
    btnInvio = Button(root, text="Genera password", command=gen_pass)
    btnInvio.pack()
    
    lblSpaziatore = Label(root, text="", bg="#808080")
    lblSpaziatore.pack()
    
    lblRisultato = Label(bg="white", width=50)
    lblRisultato.pack()
    
    root.mainloop()
    
    
    




    Io vorrei che il ciclo while confrontasse la variabile "b", il cui valore viene preso dall'Entry "casellaInserimento" dato dall'utente e convertito in INT, con la variabile "i" che parte da 0 e ad ogni ciclo incrementa di 1, e che ripeta il ciclo sino a che i 2 numeri non siano uguali...

    Il fatto è che non capisco se il ciclo viene eseguito o meno in quanto sulla label, in Output, esce si un componente della lista casuale, ma uno solo... Io vorrei che ne uscissero tanti quanti è il numero inserito dall'utente e stranamente pare non farlo...

    Con Print funziona,nella label no...






    --- Ultima modifica di Argwin in data 2017-05-05 00:45:22 ---


    --- Ultima modifica di Argwin in data 2017-05-05 00:49:01 ---

    --- Ultima modifica di Argwin in data 2017-05-05 00:50:26 ---