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 - Errore di sintassi nel mio programma
Forum - Python - Errore di sintassi nel mio programma

Avatar
GPULoad (Normal User)
Newbie


Messaggi: 14
Iscritto: 28/07/2011

Segnala al moderatore
Postato alle 18:03
Lunedì, 08/08/2011
Ciao a tutti, ho voluto fare una schermata di login perchè non sapevo cosa fare, allora mi sono messo lì e in 10 minuti ho fatto questo:
Codice sorgente - presumibilmente Python

  1. def erase():
  2.     for x in range (100):
  3.         print
  4.  
  5. def registrazione():
  6.     nome=raw_input("Inserisci un nome utente: ")
  7.     password=raw_input("Inserisci una password: ")
  8.     print "Nome utente: %s"%(nome)
  9.     print "Password: %s"%(password)
  10.     print
  11.     raw_input("REGISTRAZIONE COMPLETATA\n\nPremi ENTER per continuare...")
  12.     erase()
  13.  
  14. def login():
  15.     nome1=raw_input("Inserisci il nome utente: ")
  16.     password1=raw_input("Inserisci la password: ")
  17.     [b]if nome1==nome and password1==password:[/b]
  18.         print "Accesso consentito."
  19.    
  20.  
  21. print "===============|||LOGIN BY GPULOAD|||==============="
  22. print "------------------------------------------------------------"
  23. print
  24. print
  25. print
  26.  
  27. registrazione()
  28. login()



Solamente è che io vorrei dire che quando l'utente che si è registrato, mette i dati corretti, gli spunti "Accesso consentito", ma non so come fare, la parte in grassetto è dove c'è l'errore. So di aver sbagliato, ma non so come scrivere e quindi ho messo a caso, "se bla è uguale a bla e bla1 è uguale a bla1 scrivi questo", mi sembrava logico.

Ultima modifica effettuata da GPULoad il 08/08/2011 alle 18:05
PM Quote
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Segnala al moderatore
Postato alle 18:22
Lunedì, 08/08/2011
Tu tenti di fare la verifica tra le variabili nome1 e password1 che si trovano nella funzione login con la variabili nome e password che si trovano nella funzione registrazione. Una delle basi della programmazione in qualsiasi linguaggio riguarda la dichiarazione delle variabili. Non puoi effettuare operazioni tra variabili che si trovano in 2 funzioni diverse ( come in questo caso ) perchè ogni funzione ha un blocco di codice definito che non va ad influenzare gli altri. Dichiara le variabili nome e passwordcome global ^^

Ultima modifica effettuata da Nullable il 08/08/2011 alle 18:25
PM Quote
Avatar
GPULoad (Normal User)
Newbie


Messaggi: 14
Iscritto: 28/07/2011

Segnala al moderatore
Postato alle 18:32
Lunedì, 08/08/2011
Testo quotato

Postato originariamente da Nullable:

Tu tenti di fare la verifica tra le variabili nome1 e password1 che si trovano nella funzione login con la variabili nome e password che si trovano nella funzione registrazione. Una delle basi della programmazione in qualsiasi linguaggio riguarda la dichiarazione delle variabili. Non puoi effettuare operazioni tra variabili che si trovano in 2 funzioni diverse ( come in questo caso ) perchè ogni funzione ha un blocco di codice definito che non va ad influenzare gli altri. Dichiara le variabili nome e passwordcome global ^^



Grazie, ho risolto.

Adesso ho aggiunto altre cose, però adesso, c'è un'altro errore: ***'break' outside loop (è l'unico break del codice):
Codice sorgente - presumibilmente Python

  1. def erase():
  2.     for x in range (100):
  3.         print
  4.  
  5. def registrazione():
  6.     global nome, password
  7.     nome=raw_input("Inserisci un nome utente: ")
  8.     password=raw_input("Inserisci una password: ")
  9.     print "Nome utente: %s"%(nome)
  10.     print "Password: %s"%(password)
  11.     print
  12.     raw_input("REGISTRAZIONE COMPLETATA\n\nPremi ENTER per continuare...")
  13.     erase()
  14.  
  15. tentativi=0
  16.  
  17. def login():
  18.     nome1=raw_input("Inserisci il nome utente: ")
  19.     password1=raw_input("Inserisci la password: ")
  20.     if nome1==nome and password1==password:
  21.         print "Accesso consentito."
  22.     elif nome1!=nome and password1==password or nome1==nome and password1!=password or nome1=="" and password1=="":
  23.         tentativi=tentativi+1
  24.         raw_input("Accesso negato.\n\nPremi INVIO per riprovare...\n")
  25.         if tentativi==3:
  26.             print "Troppi tentativi."
  27.             break
  28.         ricomincia()
  29.  
  30. def ricomincia():
  31.         login()
  32.    
  33.  
  34. print "===============|||LOGIN BY GPULOAD|||==============="
  35. print "------------------------------------------------------------"
  36. print
  37. print
  38. print
  39. registrazione()
  40. login()


Ultima modifica effettuata da GPULoad il 08/08/2011 alle 19:01
PM Quote
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Segnala al moderatore
Postato alle 20:39
Lunedì, 08/08/2011
Togli il break, non serve. Il break si utilizza solo quando in un'iterazione tu vuoi fermarla solo se accade una determinata situazione ma in quel caso non c'è nessuna iterazione quindi il break non ha senso.

PM Quote
Avatar
GPULoad (Normal User)
Newbie


Messaggi: 14
Iscritto: 28/07/2011

Segnala al moderatore
Postato alle 23:27
Lunedì, 08/08/2011
Testo quotato

Postato originariamente da Nullable:

Togli il break, non serve. Il break si utilizza solo quando in un'iterazione tu vuoi fermarla solo se accade una determinata situazione ma in quel caso non c'è nessuna iterazione quindi il break non ha senso.



Ma se lo levo dopo "Troppi tentativi" mi ricomincia da capo.

PM Quote
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Segnala al moderatore
Postato alle 23:41
Lunedì, 08/08/2011
Metti un for al posto della if.

PM Quote
Avatar
GPULoad (Normal User)
Newbie


Messaggi: 14
Iscritto: 28/07/2011

Segnala al moderatore
Postato alle 12:15
Martedì, 09/08/2011
Testo quotato

Postato originariamente da Nullable:

Metti un for al posto della if.



Non posso mettere un for al posto di if, è una cosa diversa, mi da errore di sintassi. Scusa se ho detto una cavolata, ma ho iniziato da poco con Python.

Ultima modifica effettuata da GPULoad il 09/08/2011 alle 12:20
PM Quote
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Segnala al moderatore
Postato alle 13:29
Martedì, 09/08/2011
L'eccezione "errore di sintassi" è dovuta al fatto che devi utilizzare la sintassi del for > http://www.python.it/doc/Easytut/easytut-it/node11.html

PM Quote
Avatar
GPULoad (Normal User)
Newbie


Messaggi: 14
Iscritto: 28/07/2011

Segnala al moderatore
Postato alle 15:09
Martedì, 09/08/2011
Testo quotato

Postato originariamente da Nullable:

L'eccezione "errore di sintassi" è dovuta al fatto che devi utilizzare la sintassi del for > http://www.python.it/doc/Easytut/easytut-it/node11.html



Grazie, ho risolto e questa volta definitivamente :D

PM Quote