[RISOLTO] I numeri del Lotto [livello base]

di il
5 risposte

[RISOLTO] I numeri del Lotto [livello base]

Salve a tutti, studio Python da pochi giorni e avrei un problema con degli esercizi. Innanzitutto ho scritto un programma che fornisce i numeri per giocare al Lotto finché se ne ha necessità. Dopo ogni estrazione, chiede se si desidera proseguire e si può rispondere "s" o "n".
import random
risposta = "s"
while risposta == "s":
    print (random.randint(1, 90))
    risposta = input("estraggo un nuovo numero (s/n)? ")
print ("fine")
Fin qui tutto ok, il problema sta nella seguente variante: provate a creare una versione del programma che genera una lista di 10 numeri casuali, utilizzando un ciclo while anziché il for. Questo è quello che sono riuscito a scrivere:
import random
count = 0
while count < 10:
    print (random.randint(1, 90), end = " ")
    count += 1
Semplicemente vengono stampati 10 numeri casuali tra 1 e 90, ma se inserisco le caratteristiche del programma sopra non funziona, oppure stampa un numero invece di 10 ecc.
Come posso risolvere?

Inoltre c'è un'ultima variante del programma: modificate il precedente programma in modo che possiate prima scegliere quanti numeri aggiungere alla lista.

Ringrazio chiunque spenderà cinque minuti per darmi una mano.

5 Risposte

  • Re: [RISOLTO] I numeri del Lotto [livello base]

    Devi indentare il codice
    
    import random
    count = 0
    while count < 10:
          print (random.randint(1, 90))
          count += 1
    
  • Re: [RISOLTO] I numeri del Lotto [livello base]

    Perdonami ho scritto male il post, il mio codice era già indentato solo che non avendo utilizzato l'opzione per scrivere del codice gli spazi sono stati cancellati. Comunque ho modificato il post così puoi vedere bene ciò che avevo scritto.

    Alla fine sono riuscito a risolvere la prima variante dell'esercizio in questo modo:
    import random
    risposta = "s"
    while risposta == "s":
        print (random.randint(1, 90), end = " ")
        print (random.randint(1, 90), end = " ")
        print (random.randint(1, 90), end = " ")
        print (random.randint(1, 90), end = " ")
        print (random.randint(1, 90), end = " ")
        print (random.randint(1, 90), end = " ")
        print (random.randint(1, 90), end = " ")
        print (random.randint(1, 90), end = " ")
        print (random.randint(1, 90), end = " ")
        print (random.randint(1, 90), end = " ")
        risposta = input("estraggo un nuovo numero (s/n)? ")
        
    print ("fine")
    Sicuramente non è il modo più "nobile" ma è l'unico modo che ho trovato per far stampare al programma 10 numeri (e non 1) ogni volta che viene digitato "s". Accetto volentieri altre soluzioni
  • Re: [RISOLTO] I numeri del Lotto [livello base]

    Ho iniziato da qualche giorno con python dunque scusate eventuali errori/orrori, diciamo che avevi già la soluzione ma forse dovevi organizzare meglio il codice.
    
    import random
    
    try:
        numeri = int(input("quanti numeri casuali ? "))
        while True:
            if numeri < 1: break
            count = 0
            while count < numeri:
                print (random.randint(1, 90),end=" ")
                count += 1
            risposta = input("estraggo un nuovo numero (s/n)? ")
            if risposta == 's':
                continue
            if risposta == 'n':
                print ("fine")
                break
            else:
                break
    except:
        print('non è un numero')
        
    
  • Re: [RISOLTO] I numeri del Lotto [livello base]

    Non so cosa tu abbia scritto, ma non vedo il problema
    
    import random
    risposta = "s"
    
    while risposta == "s":
        count = 0
        while count < 10:
            print (random.randint(1, 90), end = " ")
            count += 1    
        risposta = input(" Ancora (s/n)? ")
        
    print ("fine")
    
  • Re: [RISOLTO] I numeri del Lotto [livello base]

    Grazie mille a entrambi ho risolto. Non ci riuscivo perché scrivevo il count = 0 al di fuori del ciclo while.
Devi accedere o registrarti per scrivere nel forum
5 risposte