Aiuto programmino per domande casuali

di il
8 risposte

Aiuto programmino per domande casuali

Salve a tutti, e scusate l'ignoranza.
Mi servirebbe creare un piccolo programmino che chieda all'utente di scrivere delle domande e che al comando "start" ne stampi a schermo una casuale.
Al momento quello che sono riuscito a realizzare è questo:
import random

domande=input("Inserisci le domande: ")
domlist=[]
domlist.append(domande)

while len(domlist)<99:
    domande=input("Inserisci le domande: ")

if domande=="start":
    random.choice(domlist)
Sapete come continuare?

8 Risposte

  • Re: Aiuto programmino per domande casuali

    Un po' poco...
    Se non aggiungi le nuove domande alla lista, non le puoi selezionare; se non indenti correttamente, non uscirai mai dal while; se non inizializzi il seed di random, rischi di avere risultati identici ad ogni chiamata.
    import random
    
    domande=input("Inserisci le domande: ")
    domlist=[]
    domlist.append(domande)
    
    while len(domlist)<99:
        domande=input("Inserisci le domande: ")
        if domande=="start":
            break
        domlist.append(domande)
    random.seed()
    print(random.choice(domlist))
    
  • Re: Aiuto programmino per domande casuali

    Andrea Quaglia ha scritto:


    Un po' poco...
    Se non aggiungi le nuove domande alla lista, non le puoi selezionare; se non indenti correttamente, non uscirai mai dal while; se non inizializzi il seed di random, rischi di avere risultati identici ad ogni chiamata.
    import random
    
    domande=input("Inserisci le domande: ")
    domlist=[]
    domlist.append(domande)
    
    while len(domlist)<99:
        domande=input("Inserisci le domande: ")
        if domande=="start":
            break
        domlist.append(domande)
    random.seed()
    print(random.choice(domlist))
    
    Grazie mille Andrea!
    Ora però mi chiedo come fare a far sì che il programma sia utilizzabile più di una volta, cioè che una volta scritto il primo "start" se ne possano scrivere tanti altri quante sono le domande inserite.
  • Re: Aiuto programmino per domande casuali

    Non mi è ben chiaro il problema: nella sua forma attuale, il programma ti permette di caricare fino a 99 domande. Poi ti stampa una domanda a caso ed esce. Esattamente, che cosa vuoi fare?
  • Re: Aiuto programmino per domande casuali

    Andrea Quaglia ha scritto:


    Non mi è ben chiaro il problema: nella sua forma attuale, il programma ti permette di caricare fino a 99 domande. Poi ti stampa una domanda a caso ed esce. Esattamente, che cosa vuoi fare?
    Intendo che una volta scritto "start" il programma non finisca, ma continui a funzionare al fine di poter stampare le altre domande
  • Re: Aiuto programmino per domande casuali

    enrico.php ha scritto:


    Intendo che una volta scritto "start" il programma non finisca, ma continui a funzionare al fine di poter stampare le altre domande
    In tal caso basta un ciclo while:
    answ=""
    while not answ == "stop":
    	answ=input(random.choice(domlist)+' ? ')
  • Re: Aiuto programmino per domande casuali

    Andrea Quaglia ha scritto:


    enrico.php ha scritto:


    Intendo che una volta scritto "start" il programma non finisca, ma continui a funzionare al fine di poter stampare le altre domande
    In tal caso basta un ciclo while:
    answ=""
    while not answ == "stop":
    	answ=input(random.choice(domlist)+' ? ')
    Grazie mille. Forse chiedo troppo, ma tramite tkinter riuscirei, sfruttando questo codice, a creare una interfaccia grafica basilare dove c'è un campo per inserire le domande, un tasto che sostituisce "start" e un campo in cui vengono stampate a schermo le domande?
  • Re: Aiuto programmino per domande casuali

    Non sono esperto di tkinter, ma si tratta di una applicazione abbastanza banale da fare; qui ti lascio uno scheletro su cui lavorare.
    import random
    import tkinter as tk
    
    class tkApp(tk.Frame):
        def __init__(self, master=None):
            self.domande = []
            super().__init__(master)
            self.master = master
            self.pack()
            self.create_widgets()
    
        def create_widgets(self):
            self.label1 = tk.Label(self)
            self.label1["text"]="Inserisci domanda:"
            self.label1.grid(row=0, column=0)
            self.e1 = tk.Entry(self, bd=5)
            self.e1.grid(row=0, column=1)
            self.b1 = tk.Button(self, text="Salva", command=self.aggiungiDomande)
            self.b1.grid(row=1, column=0)
            self.b2 = tk.Button(self, text="Esci", command=self.master.destroy)
            self.b2.grid(row=1, column=1)
            self.b3 = tk.Button(self, text="Domanda?", command=self.scegliDomanda)
            self.b3.grid(row=2, column=0)
    
        def aggiungiDomande(self):
           self.domande.append(self.e1.get())
           self.e1.delete(0, tk.END)
    
        def scegliDomanda(self):
            random.seed()
            self.label2 = tk.Label(self)
            self.label2["text"] = random.choice(self.domande)
            self.label2.grid(row=2, column=1)
    
    root = tk.Tk()
    app = tkApp(master=root)
    app.mainloop()
    Alcuni link:
  • Re: Aiuto programmino per domande casuali

    Andrea Quaglia ha scritto:


    Non sono esperto di tkinter, ma si tratta di una applicazione abbastanza banale da fare; qui ti lascio uno scheletro su cui lavorare.
    import random
    import tkinter as tk
    
    class tkApp(tk.Frame):
        def __init__(self, master=None):
            self.domande = []
            super().__init__(master)
            self.master = master
            self.pack()
            self.create_widgets()
    
        def create_widgets(self):
            self.label1 = tk.Label(self)
            self.label1["text"]="Inserisci domanda:"
            self.label1.grid(row=0, column=0)
            self.e1 = tk.Entry(self, bd=5)
            self.e1.grid(row=0, column=1)
            self.b1 = tk.Button(self, text="Salva", command=self.aggiungiDomande)
            self.b1.grid(row=1, column=0)
            self.b2 = tk.Button(self, text="Esci", command=self.master.destroy)
            self.b2.grid(row=1, column=1)
            self.b3 = tk.Button(self, text="Domanda?", command=self.scegliDomanda)
            self.b3.grid(row=2, column=0)
    
        def aggiungiDomande(self):
           self.domande.append(self.e1.get())
           self.e1.delete(0, tk.END)
    
        def scegliDomanda(self):
            random.seed()
            self.label2 = tk.Label(self)
            self.label2["text"] = random.choice(self.domande)
            self.label2.grid(row=2, column=1)
    
    root = tk.Tk()
    app = tkApp(master=root)
    app.mainloop()
    Alcuni link:
    Ti ringrazio
Devi accedere o registrarti per scrivere nel forum
8 risposte