Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Python - Password con 3 tentativi
Forum - Python - Password con 3 tentativi

Avatar
Kowalski (Normal User)
Newbie


Messaggi: 3
Iscritto: 04/05/2010

Segnala al moderatore
Postato alle 20:33
Mercoledì, 12/05/2010
Salve a tutti, ho trovato un semplice esercizio da fare cioè il programma mi chiede l'inserimento di una password, se è esatta mostra il messaggio 'Welcome in' altrimenti mi richiede di inserirne un'altra fino ad un massimo di 3 tentativi. Ora vi posto il codice, premetto che sono riuscito a farlo, voglio solo sapere un modo per scriverlo più chiaro perché il mio non lo vedo come un 'bel' codice.

Codice sorgente - presumibilmente Python

  1. print "Inserisci la password, hai 3 tentativi"
  2. passw=raw_input('Inserisci password: ')
  3. if passw=='ciao':
  4.     print 'Welcome in'
  5. else:
  6.     print 'Errata'
  7.     passw=raw_input('Reinserisci password: ')
  8.     if passw=='ciao':
  9.         print 'Welcome in'
  10.     else:
  11.         print 'Errata'
  12.         passw=raw_input('Reinserisci password: ')
  13.         if passw=='ciao':
  14.             print 'Welcome in'
  15.         else:
  16.             print 'Tentativi terminati'



C'è troppa ridondanza e vorrei evitarla.
Grazie in anticipo:)

PM Quote
Avatar
GuglielmoS (Ex-Member)
Pro


Messaggi: 114
Iscritto: 27/11/2009

Segnala al moderatore
Postato alle 22:24
Mercoledì, 12/05/2010
Ti conviene usare  un ciclo, perchè se per esempio un giorno decidessi di mettere come limite di tentativi non più 3 ma 6, ti ritroveresti a dover scrivere altri if e codice doppio.
Una versione un pò più corretta che dovrebbe andare senza problema potrebbe per esempio essere questa:
Codice sorgente - presumibilmente Python

  1. print "Hai tre tentativi..."
  2.  
  3. tentativi = 3
  4. passwordEsatta = False
  5. passwordScelta = "Ciao"
  6.  
  7. while tentativi > 0 and not passwordEsatta:
  8.     passw=raw_input('Inserisci password: ')
  9.     if passw == passwordScelta:
  10.         passwordEsatta = True
  11.     else:
  12.         print "Password errata!!!"
  13.         tentativi -= 1
  14.    
  15. if passwordEsatta:
  16.     print "Welcome"
  17. else:
  18.     print "Tentativi terminati"


PM Quote
Avatar
Kowalski (Normal User)
Newbie


Messaggi: 3
Iscritto: 04/05/2010

Segnala al moderatore
Postato alle 22:38
Mercoledì, 12/05/2010
E' infatti il mio problema era proprio il fatto di scrivere un codice così lungo e se vogliamo anche inutile...comunque grazie mille per la risposta ;)

PM Quote