Python goto
Ho una serie di cicli annidati, voglio, verificata una certa condizione, uscire da tutti i cicli (quindi in particolare da quello più esterno). Se uso break mi esce solo dal più interno... come fare??
grazie
grazie
Risposte
Alcune soluzioni potrebbero essere:
1. Inserire una condizione sul ciclo più esterno in modo da uscire dal ciclo quando desideri.
2. Inserire i tuoi cicli in una funzione e usare return
3. Usare una eccezione (non proprio elegante..)
Se inserisci il codice possiamo essere più di aiuto.
1. Inserire una condizione sul ciclo più esterno in modo da uscire dal ciclo quando desideri.
2. Inserire i tuoi cicli in una funzione e usare return
3. Usare una eccezione (non proprio elegante..)
Se inserisci il codice possiamo essere più di aiuto.
Ho risolto così, usando la variabile esci come "flag"
Era la tua proposta 3?
s=str(input("Inserisci una stringa: ")) alfabeto=['q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'] esci=0 for t1 in alfabeto: t=t1 if (t==s or esci==1): if (esci==0): parola_trovata=t esci=1 break for t2 in alfabeto: t=t1+t2 if (t==s or esci==1): if (esci==0): parola_trovata=t esci=1 break for t3 in alfabeto: t=t1+t2+t3 if (t==s or esci==1): if (esci==0): parola_trovata=t esci=1 break for t4 in alfabeto: t=t1+t2+t3+t4 if (t==s or esci==1): if (esci==0): parola_trovata=t esci=1 break for t5 in alfabeto: t=t1+t2+t3+t4+t5 if (t==s or esci==1): if (esci==0): parola_trovata=t esci=1 break for t6 in alfabeto: t=t1+t2+t3+t4+t5+t6 if (t==s or esci==1): if (esci==0): parola_trovata=t esci=1 break # for t7 in alfabeto: # t=t1+t2+t3+t4+t5+t6+t7 # if (t==s or esci==1): # if (esci==0): # parola_trovata=t # esci=1 # break # for t8 in alfabeto: # t=t1+t2+t3+t4+t5+t6+t7+t8 # if (t==s or esci==1): # if (esci==0): # parola_trovata=t # esci=1 # break # for t9 in alfabeto: # t=t1+t2+t3+t4+t5+t6+t7+t8+t9 # if (t==s or esci==1): # if (esci==0): # parola_trovata=t # esci=1 # break # for t10 in alfabeto: # t=t1+t2+t3+t4+t5+t6+t7+t8+t9+t10 # if (t==s or esci==1): # if (esci==0): # parola_trovata=t # esci=1 # break print("Ecco la stringa: "+parola_trovata)
Era la tua proposta 3?
No, era la risposta 1..
ok, grazie