Topic: problema con if e else if  (Letto 57 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Filman

  • python unicellularis
  • *
  • Post: 1
  • Punti reputazione: 0
    • Mostra profilo
problema con if e else if
« il: Febbraio 12, 2021, 17:18 »
ciao, sto imparando il python e quando compilo il programma mi da un errore con elif (invalid syntax)
sapete dirmi come mai?

import pyperclip
pswscuola = {
    'instagram': '1',
    'facebook': '2',
    }

pswpersonale = {
    'facebook': '3',
    'instagram': '4',
    }
print("Da che tipo di account vuoi le password? (scuola/personale)")
scelta = input()
print("Quale password ti interessa?")
if(scelta == "scuola"):   
    for sito in pswscuola:
        print(" -"+sito)
sito_scelto = input()
try:
    password_scelta = psw[sito_scelto]
    pyperclip.copy(password_scelta)
    print("\nPassword trovata! Ora la puoi incollare")

    input()
except:
    print("Hai sbagliato a scrivere il nome")
elif(scelta == personale):
        for sito in pswpersonale:
            print(" -"+sito)
            sito_scelto = input()
try:
    password_scelta = psw[sito_scelto]
    pyperclip.copy(password_scelta)
    print("\nPassword trovata! Ora la puoi incollare")

    input()
except:
    print("Hai sbagliato a scrivere il nome")
    input()
else:
    print("Hai sbagliato nella scelta")

Offline nuzzopippo

  • python neanderthalensis
  • ****
  • Post: 354
  • Punti reputazione: 0
    • Mostra profilo
Re:problema con if e else if
« Risposta #1 il: Febbraio 12, 2021, 18:38 »
Ciao @Filman

... che stai iniziando si vede parecchio, hai bisogno di organizzare i concetti (fase da cui si passa tutti)

In merito all'errore di per se, questa istruzione :
elif(scelta == personale):

penso che sia quella che ti blocca (la prossima volta posta anche il traceback ed utilizza il pulsante pythoncode nell'editor dei post), e ti blocca perché la variabile "personale" non è definita, e quindi non può essere utilizzata ... per altro, vi sono parecchie improprietà, tipo le istruzioni "input()" senza assegnazione di inseriment ed i blocchi try-except non molto "sensati".

Un esempio sulla Tua falsariga  :
>>> choose = {'scuola'   : {'instangram': '1',
            'facebook'  : '2'},
      'personale' : {'instangram': '3',
            'facebook'  : '4'}
  }
>>> scelta = input('Tipo di account (scuola/personale)? : ')
Tipo di account (scuola/personale)? : personale
>>> if not scelta in choose.keys():
print('Tipo account non valido')
else:
tipo_pwd = input('Quale password (instangram/facebook)? : ')
if tipo_pwd in choose[scelta].keys():
# ... istruzione per incollare
print('Password trovata, puoi incollare.')
pwd = choose[scelta][tipo_pwd]
else:
print('Scelta sito errata')
pwd = None


Quale password (instangram/facebook)? : instangram
Password trovata, puoi incollare.
>>> print(pwd)
3

Vedi?, fa le cose che Ti servono (pyperclip a parte) in maniera più compatta ed utilizzando le stesse funzioni da Te utilizzate; andando avanti, son certo, farai molto meglio di questo mio esempio, non so su cosa studi ma cerca di farlo su di un buon testo.

Ciao :)