Oppure

Loading
08/08/11 16:03
GPULoad
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:
def erase():
    for x in range (100):
        print

def registrazione():
    nome=raw_input("Inserisci un nome utente: ")
    password=raw_input("Inserisci una password: ")
    print "Nome utente: %s"%(nome)
    print "Password: %s"%(password)
    print
    raw_input("REGISTRAZIONE COMPLETATA\n\nPremi ENTER per continuare...")
    erase()

def login():
    nome1=raw_input("Inserisci il nome utente: ")
    password1=raw_input("Inserisci la password: ")
    [b]if nome1==nome and password1==password:[/b]
        print "Accesso consentito."
    

print "===============|||LOGIN BY GPULOAD|||==============="
print "------------------------------------------------------------"
print
print
print

registrazione()
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 08/08/11 16:05
aaa
08/08/11 16:22
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 ^^
Ultima modifica effettuata da Nullable 08/08/11 16:25
aaa
08/08/11 16:32
GPULoad
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):
def erase():
    for x in range (100):
        print

def registrazione():
    global nome, password
    nome=raw_input("Inserisci un nome utente: ")
    password=raw_input("Inserisci una password: ")
    print "Nome utente: %s"%(nome)
    print "Password: %s"%(password)
    print
    raw_input("REGISTRAZIONE COMPLETATA\n\nPremi ENTER per continuare...")
    erase()

tentativi=0

def login():
    nome1=raw_input("Inserisci il nome utente: ")
    password1=raw_input("Inserisci la password: ")
    if nome1==nome and password1==password:
        print "Accesso consentito."
    elif nome1!=nome and password1==password or nome1==nome and password1!=password or nome1=="" and password1=="":
        tentativi=tentativi+1
        raw_input("Accesso negato.\n\nPremi INVIO per riprovare...\n")
        if tentativi==3:
            print "Troppi tentativi."
            break
        ricomincia()

def ricomincia():
        login()
    

print "===============|||LOGIN BY GPULOAD|||==============="
print "------------------------------------------------------------"
print
print
print
registrazione()
login()
Ultima modifica effettuata da GPULoad 08/08/11 17:01
aaa
08/08/11 18:39
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.
aaa
08/08/11 21:27
GPULoad
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.
aaa
08/08/11 21:41
Nullable
Metti un for al posto della if.
aaa
09/08/11 10:15
GPULoad
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 09/08/11 10:20
aaa
09/08/11 11:29
Nullable
L'eccezione "errore di sintassi" è dovuta al fatto che devi utilizzare la sintassi del for > python.it/doc/Easytut/easytut-it/…
aaa